From 0f1a9acdd435c98433c82ebd4e034f56a7df90fc Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 13:42:18 -0400 Subject: [PATCH 01/23] Basic Jenkinsfile --- Jenkinsfile | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..876862c --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,67 @@ +library('pipeline-library@feature/add-with-ecr') + +pipeline { + options { timestamps() } + agent any + environment { + SERVICE = 'auto-semver' + GITHUB_KEY = 'autosemverDeployKey' + GITHUB_URL = 'https://github.com/RightBrain-Networks/auto-semver' + DOCKER_REGISTRY = '356438515751.dkr.ecr.us-east-1.amazonaws.com' + } + stages { + stage('Version') { + steps { + // runs the automatic semver tool which will version, & tag, + runAutoSemver() + } + } + stage('Build') { + steps { + + + echo "Building ${env.SERVICE} docker image" + + // Docker build flags are set via the getDockerBuildFlags() shared library. + sh "docker build ${getDockerBuildFlags()} -t ${env.DOCKER_REGISTRY}/${env.SERVICE}:${getVersion('-d')} ." + + //sh "tar -czvf ${env.SERVICE}-${getVersion('-d')}.tar.gz deployer" + } + post{ + // Update Git with status of build stage. + success { + updateGithubCommitStatus(GITHUB_URL, 'Passed build stage', 'SUCCESS', 'Build') + } + failure { + updateGithubCommitStatus(GITHUB_URL, 'Failed build stage', 'FAILURE', 'Build') + } + } + } + stage('Push') + { + steps { + withEcr { + sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:${getVersion('-d')}" + } + + //Copy tar.gz file to s3 bucket + //sh "aws s3 cp ${env.SERVICE}-${getVersion('-d')}.tar.gz s3://rbn-ops-pkg-us-east-1/${env.SERVICE}/${env.SERVICE}-${getVersion('-d')}.tar.gz" + + } + } + post{ + // Update Git with status of push stage. + success { + updateGithubCommitStatus(GITHUB_URL, 'Passed push stage', 'SUCCESS', 'Push') + } + failure { + updateGithubCommitStatus(GITHUB_URL, 'Failed push stage', 'FAILURE', 'Push') + } + } + } + post { + always { + removeDockerImages() + } + } +} From 4fb7bb6c6f0648cf1f7e70c255b1b47105a1d530 Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 13:45:34 -0400 Subject: [PATCH 02/23] Syntax and cleaning --- Jenkinsfile | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 876862c..e552916 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -48,20 +48,21 @@ pipeline { //sh "aws s3 cp ${env.SERVICE}-${getVersion('-d')}.tar.gz s3://rbn-ops-pkg-us-east-1/${env.SERVICE}/${env.SERVICE}-${getVersion('-d')}.tar.gz" } - } - post{ + post + { // Update Git with status of push stage. success { - updateGithubCommitStatus(GITHUB_URL, 'Passed push stage', 'SUCCESS', 'Push') + updateGithubCommitStatus(GITHUB_URL, 'Passed push stage', 'SUCCESS', 'Push') } failure { - updateGithubCommitStatus(GITHUB_URL, 'Failed push stage', 'FAILURE', 'Push') + updateGithubCommitStatus(GITHUB_URL, 'Failed push stage', 'FAILURE', 'Push') } } - } - post { - always { - removeDockerImages() } - } + post { + always { + removeDockerImages() + cleanWs() + } + } } From 35f3b62500d1f60c1e53fc6933e57a4043fbef14 Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 13:47:15 -0400 Subject: [PATCH 03/23] Syntax --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index e552916..0be1b98 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -65,4 +65,5 @@ pipeline { cleanWs() } } + } } From 401b66bf7e3f786a9ceb33d6f046b9c71902766b Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 13:48:29 -0400 Subject: [PATCH 04/23] Moved post --- Jenkinsfile | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 0be1b98..89f166e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -59,11 +59,12 @@ pipeline { } } } - post { - always { - removeDockerImages() - cleanWs() - } - } } + post { + always { + removeDockerImages() + cleanWs() + } + } + } From 59f677fb2f2d5efa89f8500a7a90d8026a40bdfc Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 14:07:15 -0400 Subject: [PATCH 05/23] Make self used semver image --- Jenkinsfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 89f166e..2c4fd72 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -41,7 +41,8 @@ pipeline { { steps { withEcr { - sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:${getVersion('-d')}" + //sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:${getVersion('-d')}" + sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:self-version" } //Copy tar.gz file to s3 bucket From 11d9c262595fd97cf7efc178d1df35a713d03ea0 Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 14:08:18 -0400 Subject: [PATCH 06/23] Fix selfversion --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2c4fd72..00c5b0c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -42,7 +42,7 @@ pipeline { steps { withEcr { //sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:${getVersion('-d')}" - sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:self-version" + sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:selfversion" } //Copy tar.gz file to s3 bucket From 240abecacc9d5d86fc645e3a257b22cd4de5087a Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 14:11:37 -0400 Subject: [PATCH 07/23] Fix selfversion --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 00c5b0c..82f3130 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -42,7 +42,7 @@ pipeline { steps { withEcr { //sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:${getVersion('-d')}" - sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:selfversion" + sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:SELFVERSION" } //Copy tar.gz file to s3 bucket From 7523905ac93b85913354fae20753a4acce33d30a Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 14:13:45 -0400 Subject: [PATCH 08/23] Testing image tag --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 82f3130..8e5ad0e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -42,7 +42,7 @@ pipeline { steps { withEcr { //sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:${getVersion('-d')}" - sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:SELFVERSION" + sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:semver" } //Copy tar.gz file to s3 bucket From 9fd9823d78b81e78f12efe356477bc0ffd98263a Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 14:17:53 -0400 Subject: [PATCH 09/23] Testing image tag --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 8e5ad0e..c56f0df 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -42,7 +42,7 @@ pipeline { steps { withEcr { //sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:${getVersion('-d')}" - sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:semver" + sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:a" } //Copy tar.gz file to s3 bucket From 622a0ee833ae52248f5ca05fc847e7a9b005d4dc Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 14:18:48 -0400 Subject: [PATCH 10/23] Testing image tag --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index c56f0df..8ba9a75 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -42,7 +42,7 @@ pipeline { steps { withEcr { //sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:${getVersion('-d')}" - sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:a" + sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:${getVersion('-d')}" } //Copy tar.gz file to s3 bucket From 6750b10544798562e3e320daa5b566cdb49407e0 Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 14:26:17 -0400 Subject: [PATCH 11/23] Testing image tag --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 8ba9a75..2425efd 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -42,7 +42,7 @@ pipeline { steps { withEcr { //sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:${getVersion('-d')}" - sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:${getVersion('-d')}" + sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:1.0.0" } //Copy tar.gz file to s3 bucket From b740ed8e40afae5c270c3f212543c4726f5fffb2 Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 14:33:00 -0400 Subject: [PATCH 12/23] Run autosemver in docker --- Jenkinsfile | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2425efd..3908c24 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -11,6 +11,11 @@ pipeline { } stages { stage('Version') { + agent { + docker { + image '356438515751.dkr.ecr.us-east-1.amazonaws.com:auto-semver' + } + } steps { // runs the automatic semver tool which will version, & tag, runAutoSemver() @@ -19,7 +24,6 @@ pipeline { stage('Build') { steps { - echo "Building ${env.SERVICE} docker image" // Docker build flags are set via the getDockerBuildFlags() shared library. @@ -41,8 +45,7 @@ pipeline { { steps { withEcr { - //sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:${getVersion('-d')}" - sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:1.0.0" + sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:${getVersion('-d')}" } //Copy tar.gz file to s3 bucket From a215e1364cc09aa1eeb604ea9759575b504d7cc0 Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 14:36:57 -0400 Subject: [PATCH 13/23] Pull image from ECR --- Jenkinsfile | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3908c24..0e53f4d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,10 +10,17 @@ pipeline { DOCKER_REGISTRY = '356438515751.dkr.ecr.us-east-1.amazonaws.com' } stages { + stage("Docker ECR") + { + steps + { + sh "docker pull 356438515751.dkr.ecr.us-east-1.amazonaws.com/auto-semver" + } + } stage('Version') { agent { docker { - image '356438515751.dkr.ecr.us-east-1.amazonaws.com:auto-semver' + image 'auto-semver' } } steps { From 7210d87d0018716392876b2f1b6125a8d4e9a57a Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 14:37:53 -0400 Subject: [PATCH 14/23] Testing with HEAD image --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 0e53f4d..3d21d5d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -14,7 +14,7 @@ pipeline { { steps { - sh "docker pull 356438515751.dkr.ecr.us-east-1.amazonaws.com/auto-semver" + sh "docker pull 356438515751.dkr.ecr.us-east-1.amazonaws.com/auto-semver:HEAD" } } stage('Version') { From 52dd4305210cbec047233210a3770e7189cd72d2 Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 14:39:12 -0400 Subject: [PATCH 15/23] Testing with HEAD image --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3d21d5d..0c03f6e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -20,7 +20,7 @@ pipeline { stage('Version') { agent { docker { - image 'auto-semver' + image 'auto-semver:HEAD' } } steps { From be5de05dc30399e3d9b2ed2f77560a1ca1f64102 Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 14:40:05 -0400 Subject: [PATCH 16/23] Testing with HEAD image --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 0c03f6e..e354138 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -20,7 +20,7 @@ pipeline { stage('Version') { agent { docker { - image 'auto-semver:HEAD' + image '356438515751.dkr.ecr.us-east-1.amazonaws.com/auto-semver:HEAD' } } steps { From 13a6e3f9c9251cc2e8d4d44d2130dd1c5d01d725 Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 14:44:16 -0400 Subject: [PATCH 17/23] GetVersion inside of docker container --- Jenkinsfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index e354138..103c883 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -8,9 +8,10 @@ pipeline { GITHUB_KEY = 'autosemverDeployKey' GITHUB_URL = 'https://github.com/RightBrain-Networks/auto-semver' DOCKER_REGISTRY = '356438515751.dkr.ecr.us-east-1.amazonaws.com' + VERSION = "" } stages { - stage("Docker ECR") + stage("Pull Versioning Image") { steps { @@ -26,6 +27,7 @@ pipeline { steps { // runs the automatic semver tool which will version, & tag, runAutoSemver() + env.VERSION = "${getVersion('-d')}" } } stage('Build') { @@ -34,7 +36,7 @@ pipeline { echo "Building ${env.SERVICE} docker image" // Docker build flags are set via the getDockerBuildFlags() shared library. - sh "docker build ${getDockerBuildFlags()} -t ${env.DOCKER_REGISTRY}/${env.SERVICE}:${getVersion('-d')} ." + sh "docker build ${getDockerBuildFlags()} -t ${env.DOCKER_REGISTRY}/${env.SERVICE}:${env.VERSION} ." //sh "tar -czvf ${env.SERVICE}-${getVersion('-d')}.tar.gz deployer" } From b5609076963372eba166ec83f47e5ce9c0936013 Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 14:45:09 -0400 Subject: [PATCH 18/23] GetVersion inside of docker container --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 103c883..a9add0d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -27,7 +27,7 @@ pipeline { steps { // runs the automatic semver tool which will version, & tag, runAutoSemver() - env.VERSION = "${getVersion('-d')}" + VERSION = "${getVersion('-d')}" } } stage('Build') { From 722245953c9204659ac1ca224d007f25bd22fd70 Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 14:46:49 -0400 Subject: [PATCH 19/23] GetVersion Syntax --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index a9add0d..259f519 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -27,7 +27,7 @@ pipeline { steps { // runs the automatic semver tool which will version, & tag, runAutoSemver() - VERSION = "${getVersion('-d')}" + VERSION = $(getVersion('-d')) } } stage('Build') { From 76ad8335ee76fe7e3e7dae8a52dc7a5aa3f6f589 Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 14:48:04 -0400 Subject: [PATCH 20/23] GetVersion Syntax --- Jenkinsfile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 259f519..917b2fb 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -27,7 +27,10 @@ pipeline { steps { // runs the automatic semver tool which will version, & tag, runAutoSemver() - VERSION = $(getVersion('-d')) + script + { + VERSION = $(getVersion('-d')) + } } } stage('Build') { From edab8ae72004fdc04a9d7ae17e8fc4082eeeab00 Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 14:51:28 -0400 Subject: [PATCH 21/23] GetVersion Syntax --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 917b2fb..b9838e5 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -29,7 +29,7 @@ pipeline { runAutoSemver() script { - VERSION = $(getVersion('-d')) + env.VERSION = $(getVersion('-d')) } } } From 83670fa41b39a7000913305d3ed2ce6577fc2ccd Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 14:55:06 -0400 Subject: [PATCH 22/23] GetVersion Syntax --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index b9838e5..b8b5635 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -29,7 +29,7 @@ pipeline { runAutoSemver() script { - env.VERSION = $(getVersion('-d')) + env.VERSION = getVersion('-d') } } } From fc649b102e1ed057fd4d16d9fcbd0f49dc85fd9d Mon Sep 17 00:00:00 2001 From: Joseph Manley Date: Thu, 11 Apr 2019 14:59:37 -0400 Subject: [PATCH 23/23] Cleaned up Jenkinsfile --- Jenkinsfile | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index b8b5635..a7ff27c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -9,29 +9,47 @@ pipeline { GITHUB_URL = 'https://github.com/RightBrain-Networks/auto-semver' DOCKER_REGISTRY = '356438515751.dkr.ecr.us-east-1.amazonaws.com' VERSION = "" + + + //Image tag to use for self-versioning + SELF_SEMVER_TAG = "HEAD" + } stages { + //Pulls docker image for self-versioning stage("Pull Versioning Image") { steps { - sh "docker pull 356438515751.dkr.ecr.us-east-1.amazonaws.com/auto-semver:HEAD" + sh "docker pull ${DOCKER_REGISTRY}/auto-semver:${SELF_SEMVER_TAG}" } } + //Runs versioning in docker container stage('Version') { agent { docker { - image '356438515751.dkr.ecr.us-east-1.amazonaws.com/auto-semver:HEAD' + image "${DOCKER_REGISTRY}/auto-semver:${SELF_SEMVER_TAG}" } } steps { // runs the automatic semver tool which will version, & tag, runAutoSemver() + + //Grabs current version script { env.VERSION = getVersion('-d') } } + post{ + // Update Git with status of version stage. + success { + updateGithubCommitStatus(GITHUB_URL, 'Passed version stage', 'SUCCESS', 'Version') + } + failure { + updateGithubCommitStatus(GITHUB_URL, 'Failed version stage', 'FAILURE', 'Version') + } + } } stage('Build') { steps { @@ -57,12 +75,9 @@ pipeline { { steps { withEcr { - sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:${getVersion('-d')}" + sh "docker push ${env.DOCKER_REGISTRY}/${env.SERVICE}:${env.VERSION}" } - //Copy tar.gz file to s3 bucket - //sh "aws s3 cp ${env.SERVICE}-${getVersion('-d')}.tar.gz s3://rbn-ops-pkg-us-east-1/${env.SERVICE}/${env.SERVICE}-${getVersion('-d')}.tar.gz" - } post {