From 3156f6b0f5ea793be7c62abe410f829c0afc007d Mon Sep 17 00:00:00 2001 From: Venu Date: Wed, 14 Dec 2022 19:45:12 -0600 Subject: [PATCH 1/3] adding jenkinsfile for gradle --- Jenkinsfile | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 00000000..70379850 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,20 @@ +pipeline { + agent any + + tools { + gradle "gradle7" + } + + stages { + stage('Checkout') { + steps { + checkout([$class: 'GitSCM', branches: [[name: '*/develop']], extensions: [], userRemoteConfigs: [[credentialsId: 'GitHub_token', url: 'https://github.com/vgtstl/java-hello-world-with-gradle.git']]]) + } + } + stage('Build') { + steps { + sh 'gradle clean build' + } + } + } +} From 481e4ca5de9c920956d93aebcd0e410af4c352a3 Mon Sep 17 00:00:00 2001 From: Venu Date: Wed, 14 Dec 2022 20:08:10 -0600 Subject: [PATCH 2/3] adding multiple stages and options --- Jenkinsfile | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 70379850..6c7eaeb5 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -5,16 +5,33 @@ pipeline { gradle "gradle7" } + options { + timeout(time: 10, unit: 'MINUTES') + timestamps() + } + + triggers { pollSCM('*/1 * * * *') } + stages { stage('Checkout') { steps { checkout([$class: 'GitSCM', branches: [[name: '*/develop']], extensions: [], userRemoteConfigs: [[credentialsId: 'GitHub_token', url: 'https://github.com/vgtstl/java-hello-world-with-gradle.git']]]) } } + stage('Version') { + steps { + sh 'gradle --version' + } + } stage('Build') { steps { sh 'gradle clean build' } + post { + always { + archiveArtifacts artifacts: 'build/libs/*.jar', followSymlinks: false + } + } } } } From 5fa65c842dda99a5da988a1c07663cf04519ced5 Mon Sep 17 00:00:00 2001 From: Venu Date: Wed, 14 Dec 2022 20:30:04 -0600 Subject: [PATCH 3/3] adding dockerfile and deploy steps with post action in jenkinsfile --- Dockerfile | 3 +++ Jenkinsfile | 38 +++++++++++++++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..e02e6b83 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,3 @@ +FROM codenvy/jdk7:latest +COPY build/libs/*.jar . +ENTRYPOINT ["java", "-jar", "gradle-simple-2.0-sources.jar"] \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile index 6c7eaeb5..05d45f30 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -6,12 +6,16 @@ pipeline { } options { - timeout(time: 10, unit: 'MINUTES') + timeout(time: 10, unit: 'MINUTES') timestamps() } triggers { pollSCM('*/1 * * * *') } + environment { + DOCKER_IMAGE = "venu/helloworld-gradle" + } + stages { stage('Checkout') { steps { @@ -33,5 +37,37 @@ pipeline { } } } + stage('DockerBuild'){ + steps { + sh "docker build -t ${env.DOCKER_IMAGE} ." + } + } + stage('DockerScan'){ + steps { + echo "docker scan ${env.DOCKER_IMAGE}" + } + } + stage('DockePush'){ + steps { + echo "docker push ${env.DOCKER_IMAGE}" + } + } + stage('Deploy to Dev'){ + steps { + echo 'Dev Deployment Completed' + } + } + stage('Deploy to QA'){ + steps { + echo 'QA Deployment Completed' + } + } + stage('Deploy to Prod'){ + steps { + input('Do you wants to proceed with prod deployment') + echo 'Prod Deployment Completed' + } + } } + }