Compare commits

..

No commits in common. "b62d45d0d846f099f4551b94f257ad50c370f85c" and "ca4182d798680fba0f6c80be4e42a680625324ac" have entirely different histories.

1 changed files with 8 additions and 51 deletions

59
Jenkinsfile vendored
View File

@ -1,5 +1,3 @@
def buildArtifact = true
pipeline { pipeline {
agent { label 'ruby && freebsd' } agent { label 'ruby && freebsd' }
@ -20,6 +18,7 @@ pipeline {
} }
stage('Build dependencies') { stage('Build dependencies') {
steps { steps {
sh 'bundle config set --local path "vendor"'
sh 'bundle install' sh 'bundle install'
sh 'sequel -m db/migrations sqlite://db/${DB_NAME}' sh 'sequel -m db/migrations sqlite://db/${DB_NAME}'
} }
@ -27,57 +26,25 @@ pipeline {
stage('Audit Dependencies') { stage('Audit Dependencies') {
steps { steps {
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') { catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
script { sh 'bundle exec ruby-audit check'
try { sh 'bundle exec bundle-audit check >> audit.html'
sh 'bundle exec ruby-audit check'
sh 'bundle exec bundle-audit check >> audit.html'
} catch (e) {
script {
buildArtifact = false
}
}
}
} }
} }
} }
stage('Code Linting') { stage('Code Linting') {
steps { steps {
catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') { catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') {
script { sh 'bundle exec rubocop --format html --out rubocop.html'
try {
sh 'bundle exec rubocop --format html --out rubocop.html'
} catch (e) {
script {
buildArtifact = false
}
}
}
} }
} }
} }
stage('Run tests') { stage('Run tests') {
steps { steps {
catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') { catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') {
script { sh 'bundle exec cucumber features --format html --out cucumber.html'
try {
sh 'bundle exec cucumber features --format html --out cucumber.html'
} catch (e) {
script {
buildArtifact = false
}
}
}
} }
catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') { catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') {
script { sh 'bundle exec rspec spec --format html --out spec.html'
try {
sh 'bundle exec rspec spec --format html --out spec.html'
} catch (e) {
script {
buildArtifact = false
}
}
}
} }
} }
} }
@ -94,19 +61,13 @@ pipeline {
} }
} }
stage('Build production deliverable') { stage('Build production deliverable') {
when {
expression {
buildArtifact
}
}
steps { steps {
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') { catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
sh ''' #!/usr/local/bin/bash sh ''' #!/usr/local/bin/bash
ZIP_FILE="url-shortener_${BRANCH_NAME}_$(date "+%Y-%m-%d_%H-%M-%S").tgz" ZIP_FILE="url-shortener_${BRANCH_NAME}_$(date "+%Y-%m-%d_%H-%M-%S").tgz"
CUR_DIR=$(pwd) CUR_DIR=$(pwd)
bundle config set --local without 'test' bundle config set --local without 'test'
bundle config set --local path "vendor" bundle clean
bundle install
mkdir -p /tmp/url-shortener mkdir -p /tmp/url-shortener
cp -R * /tmp/url-shortener cp -R * /tmp/url-shortener
cp .env.rb /tmp/url-shortener/ cp .env.rb /tmp/url-shortener/
@ -122,13 +83,9 @@ pipeline {
} }
} }
stage('Clean up deliverable') { stage('Clean up deliverable') {
when {
expression {
buildArtifact
}
}
steps { steps {
sh 'rm -rf /tmp/url-shortener' sh 'rm -rf /tmp/url-shortener'
sh 'rm -rf *.tgz'
} }
} }
} }