Merge pull request 'prod-artifact-when-good' (#34) from prod-artifact-when-good into master
Gitea Bucky/url-shortener/pipeline/head This commit looks good
Details
Gitea Bucky/url-shortener/pipeline/head This commit looks good
Details
Reviewed-on: #34master
commit
b62d45d0d8
|
|
@ -1,3 +1,5 @@
|
|||
def buildArtifact = true
|
||||
|
||||
pipeline {
|
||||
agent { label 'ruby && freebsd' }
|
||||
|
||||
|
|
@ -18,7 +20,6 @@ pipeline {
|
|||
}
|
||||
stage('Build dependencies') {
|
||||
steps {
|
||||
sh 'bundle config set --local path "vendor"'
|
||||
sh 'bundle install'
|
||||
sh 'sequel -m db/migrations sqlite://db/${DB_NAME}'
|
||||
}
|
||||
|
|
@ -26,25 +27,57 @@ pipeline {
|
|||
stage('Audit Dependencies') {
|
||||
steps {
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
script {
|
||||
try {
|
||||
sh 'bundle exec ruby-audit check'
|
||||
sh 'bundle exec bundle-audit check >> audit.html'
|
||||
} catch (e) {
|
||||
script {
|
||||
buildArtifact = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Code Linting') {
|
||||
steps {
|
||||
catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') {
|
||||
script {
|
||||
try {
|
||||
sh 'bundle exec rubocop --format html --out rubocop.html'
|
||||
} catch (e) {
|
||||
script {
|
||||
buildArtifact = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Run tests') {
|
||||
steps {
|
||||
catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') {
|
||||
script {
|
||||
try {
|
||||
sh 'bundle exec cucumber features --format html --out cucumber.html'
|
||||
} catch (e) {
|
||||
script {
|
||||
buildArtifact = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catchError(buildResult: 'UNSTABLE', stageResult: 'FAILURE') {
|
||||
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') {
|
||||
when {
|
||||
expression {
|
||||
buildArtifact
|
||||
}
|
||||
}
|
||||
steps {
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
sh ''' #!/usr/local/bin/bash
|
||||
ZIP_FILE="url-shortener_${BRANCH_NAME}_$(date "+%Y-%m-%d_%H-%M-%S").tgz"
|
||||
CUR_DIR=$(pwd)
|
||||
bundle config set --local without 'test'
|
||||
bundle clean
|
||||
bundle config set --local path "vendor"
|
||||
bundle install
|
||||
mkdir -p /tmp/url-shortener
|
||||
cp -R * /tmp/url-shortener
|
||||
cp .env.rb /tmp/url-shortener/
|
||||
|
|
@ -83,9 +122,13 @@ pipeline {
|
|||
}
|
||||
}
|
||||
stage('Clean up deliverable') {
|
||||
when {
|
||||
expression {
|
||||
buildArtifact
|
||||
}
|
||||
}
|
||||
steps {
|
||||
sh 'rm -rf /tmp/url-shortener'
|
||||
sh 'rm -rf *.tgz'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue