prod-artifact-when-good #34
|
|
@ -1,3 +1,5 @@
|
||||||
|
def buildArtifact = true
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
agent { label 'ruby && freebsd' }
|
agent { label 'ruby && freebsd' }
|
||||||
|
|
||||||
|
|
@ -18,7 +20,6 @@ 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}'
|
||||||
}
|
}
|
||||||
|
|
@ -26,25 +27,57 @@ pipeline {
|
||||||
stage('Audit Dependencies') {
|
stage('Audit Dependencies') {
|
||||||
steps {
|
steps {
|
||||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||||
sh 'bundle exec ruby-audit check'
|
script {
|
||||||
sh 'bundle exec bundle-audit check >> audit.html'
|
try {
|
||||||
|
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') {
|
||||||
sh 'bundle exec rubocop --format html --out rubocop.html'
|
script {
|
||||||
|
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') {
|
||||||
sh 'bundle exec cucumber features --format html --out cucumber.html'
|
script {
|
||||||
|
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') {
|
||||||
sh 'bundle exec rspec spec --format html --out spec.html'
|
script {
|
||||||
|
try {
|
||||||
|
sh 'bundle exec rspec spec --format html --out spec.html'
|
||||||
|
} catch (e) {
|
||||||
|
script {
|
||||||
|
buildArtifact = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -61,13 +94,19 @@ 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 clean
|
bundle config set --local path "vendor"
|
||||||
|
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/
|
||||||
|
|
@ -83,9 +122,13 @@ 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'
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue