From b56b618a8ced15b7b880209816398e211061ddda Mon Sep 17 00:00:00 2001 From: Adam Townsend Date: Mon, 16 Oct 2023 10:50:22 -0700 Subject: [PATCH 01/12] added stages to build a deliverable and then clean it up when done --- Jenkinsfile | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 091d725..d441003 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -35,7 +35,6 @@ pipeline { } stage('Report results') { steps { - archive(includes: 'pkg/*.gem') publishHTML (target: [ allowMissing: false, alwaysLinkToLastBuild: false, @@ -47,6 +46,23 @@ pipeline { } } } + stage('Build deliverable') { + steps { + sh 'mkdir url-shortener' + sh 'shopt -s extglob && cp -R !(url-shortener) url-shortener/' + sh 'rm -rf url-shortener/features' + sh 'rm -rf url-shortener/spec' + sh 'rm -rf url-shortener/coverage' + sh 'tar -czvf url-shortener.tgz url-shortener/' + archiveArtifacts artifacts: 'url-shortener.tgz' + } + } + stage('Clean up deliverable') { + steps { + sh 'rm -rf url-shortener' + sh 'rm -rf url-shortener.tgz' + } + } post { success { mattermostSend channel: 'git-messages', color: 'good', message: "[${JOB_NAME}](${JOB_URL}) [#${BUILD_NUMBER}](${BUILD_URL}) ([Gitea](${GIT_URL}))", text: 'Build Finished Successfully' From ceab408ec04cf89364e4872eaf8c4d1db5294386 Mon Sep 17 00:00:00 2001 From: Adam Townsend Date: Mon, 16 Oct 2023 10:54:52 -0700 Subject: [PATCH 02/12] build deliverable, store it, and clean up afterwards --- Jenkinsfile | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index d441003..fc9664e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -45,22 +45,22 @@ pipeline { reportTitles: 'Cucumber Results, RSpec Results, Test Coverage']) } } - } - stage('Build deliverable') { - steps { - sh 'mkdir url-shortener' - sh 'shopt -s extglob && cp -R !(url-shortener) url-shortener/' - sh 'rm -rf url-shortener/features' - sh 'rm -rf url-shortener/spec' - sh 'rm -rf url-shortener/coverage' - sh 'tar -czvf url-shortener.tgz url-shortener/' - archiveArtifacts artifacts: 'url-shortener.tgz' + stage('Build deliverable') { + steps { + sh 'mkdir url-shortener' + sh 'shopt -s extglob && cp -R !(url-shortener) url-shortener/' + sh 'rm -rf url-shortener/features' + sh 'rm -rf url-shortener/spec' + sh 'rm -rf url-shortener/coverage' + sh 'tar -czvf url-shortener.tgz url-shortener/' + archiveArtifacts artifacts: 'url-shortener.tgz' + } } - } - stage('Clean up deliverable') { - steps { - sh 'rm -rf url-shortener' - sh 'rm -rf url-shortener.tgz' + stage('Clean up deliverable') { + steps { + sh 'rm -rf url-shortener' + sh 'rm -rf url-shortener.tgz' + } } } post { From 27b32fc8f49ef50f2d211b0660426e76c719ee40 Mon Sep 17 00:00:00 2001 From: Adam Townsend Date: Mon, 16 Oct 2023 11:57:20 -0700 Subject: [PATCH 03/12] another shot --- Jenkinsfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index fc9664e..dbefa8b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -48,7 +48,8 @@ pipeline { stage('Build deliverable') { steps { sh 'mkdir url-shortener' - sh 'shopt -s extglob && cp -R !(url-shortener) url-shortener/' + sh 'shopt -s extglob' + sh 'cp -R !(url-shortener) url-shortener/' sh 'rm -rf url-shortener/features' sh 'rm -rf url-shortener/spec' sh 'rm -rf url-shortener/coverage' From 3ec0f0ff7b2ccd15afc8e05d09ed66fc1fc1a5b8 Mon Sep 17 00:00:00 2001 From: Adam Townsend Date: Mon, 16 Oct 2023 12:01:10 -0700 Subject: [PATCH 04/12] mkdir -p and wrapped the steps in a catch so the clean up happens --- Jenkinsfile | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index dbefa8b..ab75dc9 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -47,14 +47,16 @@ pipeline { } stage('Build deliverable') { steps { - sh 'mkdir url-shortener' - sh 'shopt -s extglob' - sh 'cp -R !(url-shortener) url-shortener/' - sh 'rm -rf url-shortener/features' - sh 'rm -rf url-shortener/spec' - sh 'rm -rf url-shortener/coverage' - sh 'tar -czvf url-shortener.tgz url-shortener/' - archiveArtifacts artifacts: 'url-shortener.tgz' + catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') { + sh 'mkdir -p url-shortener' + sh 'shopt -s extglob' + sh 'cp -R !(url-shortener) url-shortener/' + sh 'rm -rf url-shortener/features' + sh 'rm -rf url-shortener/spec' + sh 'rm -rf url-shortener/coverage' + sh 'tar -czvf url-shortener.tgz url-shortener/' + archiveArtifacts artifacts: 'url-shortener.tgz' + } } } stage('Clean up deliverable') { From e4eabf8aa69bd64e0ee0c0a1d903708d818874e6 Mon Sep 17 00:00:00 2001 From: Adam Townsend Date: Mon, 16 Oct 2023 12:06:11 -0700 Subject: [PATCH 05/12] looking to see what shell is used --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index ab75dc9..7dea04d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -49,6 +49,7 @@ pipeline { steps { catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') { sh 'mkdir -p url-shortener' + sh 'echo $SHELL' sh 'shopt -s extglob' sh 'cp -R !(url-shortener) url-shortener/' sh 'rm -rf url-shortener/features' From ee07312b86663ec9e9e34e7976107256a010053c Mon Sep 17 00:00:00 2001 From: Adam Townsend Date: Mon, 16 Oct 2023 13:48:31 -0700 Subject: [PATCH 06/12] another shot at getting local shell --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 7dea04d..48121c9 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -49,7 +49,7 @@ pipeline { steps { catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') { sh 'mkdir -p url-shortener' - sh 'echo $SHELL' + sh 'env | grep -i shell' sh 'shopt -s extglob' sh 'cp -R !(url-shortener) url-shortener/' sh 'rm -rf url-shortener/features' From f8c20541d56179444582ce155f57aeedcb9bc4cf Mon Sep 17 00:00:00 2001 From: Adam Townsend Date: Mon, 16 Oct 2023 15:09:44 -0700 Subject: [PATCH 07/12] removed shopt, added that in jenkins user's .profile --- Jenkinsfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 48121c9..99eef3f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -49,8 +49,6 @@ pipeline { steps { catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') { sh 'mkdir -p url-shortener' - sh 'env | grep -i shell' - sh 'shopt -s extglob' sh 'cp -R !(url-shortener) url-shortener/' sh 'rm -rf url-shortener/features' sh 'rm -rf url-shortener/spec' From 9e5a4069a4c8283343cd6a635a1274740a58ae5f Mon Sep 17 00:00:00 2001 From: Adam Townsend Date: Mon, 16 Oct 2023 15:44:50 -0700 Subject: [PATCH 08/12] wrapping all the commands in one script, hope it works? --- Jenkinsfile | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 99eef3f..436d7a2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -48,14 +48,15 @@ pipeline { stage('Build deliverable') { steps { catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') { - sh 'mkdir -p url-shortener' - sh 'cp -R !(url-shortener) url-shortener/' - sh 'rm -rf url-shortener/features' - sh 'rm -rf url-shortener/spec' - sh 'rm -rf url-shortener/coverage' - sh 'tar -czvf url-shortener.tgz url-shortener/' - archiveArtifacts artifacts: 'url-shortener.tgz' + sh ''' #!/usr/local/bin/bash + mkdir -p url-shortener + shopt -s extglob + cp -R !(url-shortener) url-shortener/ + rm -rf url-shortener/features url-shortener/spec url-shortener/coverage + tar -czvf url-shortener.tgz url-shortener/ + ''' } + archiveArtifacts artifacts: 'url-shortener.tgz' } } stage('Clean up deliverable') { From eed17d61a340a031032bcc78b4e13cf45cb5a884 Mon Sep 17 00:00:00 2001 From: Adam Townsend Date: Mon, 16 Oct 2023 16:35:56 -0700 Subject: [PATCH 09/12] use tmp as a staging place for building the tgz file --- Jenkinsfile | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 436d7a2..612b705 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -49,11 +49,13 @@ pipeline { steps { catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') { sh ''' #!/usr/local/bin/bash - mkdir -p url-shortener - shopt -s extglob - cp -R !(url-shortener) url-shortener/ - rm -rf url-shortener/features url-shortener/spec url-shortener/coverage + CUR_DIR=$(pwd) + mkdir -p /tmp/url-shortener + cp -R * /tmp/url-shortener + rm -rf /tmp/url-shortener/features /tmp/url-shortener/spec /tmp/url-shortener/coverage .git* + cd /tmp tar -czvf url-shortener.tgz url-shortener/ + mv url-shortener.tgz $CUR_DIR ''' } archiveArtifacts artifacts: 'url-shortener.tgz' @@ -61,7 +63,7 @@ pipeline { } stage('Clean up deliverable') { steps { - sh 'rm -rf url-shortener' + sh 'rm -rf /tmp/url-shortener' sh 'rm -rf url-shortener.tgz' } } From 3097cb69aad10b5abb079099811018327046f3ca Mon Sep 17 00:00:00 2001 From: Adam Townsend Date: Mon, 16 Oct 2023 17:04:23 -0700 Subject: [PATCH 10/12] clean the workspace when done --- Jenkinsfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 612b705..f9a70a6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -78,5 +78,8 @@ pipeline { failure { mattermostSend channel: 'git-messages', color: 'danger', message: "[${JOB_NAME}](${JOB_URL}) [#${BUILD_NUMBER}](${BUILD_URL}) ([Gitea](${GIT_URL}))", text: "Build Failed" } + always { + cleanWs deleteDirs: true, patterns: [[pattern: '*', type: 'INCLUDE']] + } } } From 91f45965a04525b7fcfc324f19b7c31b725ed87a Mon Sep 17 00:00:00 2001 From: Adam Townsend Date: Mon, 16 Oct 2023 17:18:06 -0700 Subject: [PATCH 11/12] simplify it a little --- Jenkinsfile | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f9a70a6..55db95a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -55,16 +55,14 @@ pipeline { rm -rf /tmp/url-shortener/features /tmp/url-shortener/spec /tmp/url-shortener/coverage .git* cd /tmp tar -czvf url-shortener.tgz url-shortener/ - mv url-shortener.tgz $CUR_DIR ''' } - archiveArtifacts artifacts: 'url-shortener.tgz' + archiveArtifacts artifacts: '/tmp/url-shortener.tgz' } } stage('Clean up deliverable') { steps { - sh 'rm -rf /tmp/url-shortener' - sh 'rm -rf url-shortener.tgz' + sh 'rm -rf /tmp/url-shortener*' } } } From b2cdf60a3255bdb65db3fe871e12a23ee830c795 Mon Sep 17 00:00:00 2001 From: Adam Townsend Date: Mon, 16 Oct 2023 17:23:50 -0700 Subject: [PATCH 12/12] Revert "simplify it a little" This reverts commit 91f45965a04525b7fcfc324f19b7c31b725ed87a. --- Jenkinsfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 55db95a..f9a70a6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -55,14 +55,16 @@ pipeline { rm -rf /tmp/url-shortener/features /tmp/url-shortener/spec /tmp/url-shortener/coverage .git* cd /tmp tar -czvf url-shortener.tgz url-shortener/ + mv url-shortener.tgz $CUR_DIR ''' } - archiveArtifacts artifacts: '/tmp/url-shortener.tgz' + archiveArtifacts artifacts: 'url-shortener.tgz' } } stage('Clean up deliverable') { steps { - sh 'rm -rf /tmp/url-shortener*' + sh 'rm -rf /tmp/url-shortener' + sh 'rm -rf url-shortener.tgz' } } }