blob: 1d02012940b89573a1c3e35f6be588dff593af6c [file] [log] [blame]
#!groovy
pipeline {
agent {
label 'git-websites'
}
options {
buildDiscarder logRotator(numToKeepStr: '5')
timeout(40)
disableConcurrentBuilds()
skipStagesAfterUnstable()
}
environment {
RUBY_PATH="${env.WORKSPACE}/.rvm"
GEM_HOME="${RUBY_PATH}/gems"
PATH="${GEM_HOME}/bin:${RUBY_PATH}/bin:${env.PATH}"
}
stages {
stage('Build a staged website') {
steps {
sh '''
echo Generating a new version of website
gem install --install-dir ${GEM_HOME} bundler -v '2.3.23'
bundle config set --local path ${GEM_HOME}
bundle install
bundle exec jekyll build
'''
}
}
stage('Deploy to stage area') {
steps {
sh '''
echo "Pushing changes into stage site"
if ! git config remote.asf.url > /dev/null; then
git remote add asf https://gitbox.apache.org/repos/asf/struts-site.git
fi
git fetch asf
git checkout asf-staging
git pull asf asf-staging
cp -r _site/* content
cp -r _site/.htaccess content/.htaccess
git add content/*
git add content/.htaccess
git status
git commit -m "Updates stage by Jenkins" --allow-empty
git push asf asf-staging
'''
}
}
stage('Comment on PR') {
when {
changeRequest()
}
steps {
script {
pullRequest.comment("Staged site is ready at https://struts.staged.apache.org/")
}
}
}
}
post {
// If this build failed, send an email to the list.
failure {
script {
emailext(
//to: "commits@struts.apache.org",
recipientProviders: [[$class: 'DevelopersRecipientProvider']],
from: "Mr. Jenkins <jenkins@builds.apache.org>",
subject: "Jenkins job ${env.JOB_NAME}#${env.BUILD_NUMBER} failed",
body: """
There is a build failure in ${env.JOB_NAME}.
Build: ${env.BUILD_URL}
Logs: ${env.BUILD_URL}console
Changes: ${env.BUILD_URL}changes
--
Mr. Jenkins
Director of Continuous Integration
"""
)
}
}
// Send an email, if the last build was not successful and this one is.
fixed {
script {
emailext(
//to: "commits@struts.apache.org",
recipientProviders: [[$class: 'DevelopersRecipientProvider']],
from: 'Mr. Jenkins <jenkins@builds.apache.org>',
subject: "Jenkins job ${env.JOB_NAME}#${env.BUILD_NUMBER} back to normal",
body: """
The build for ${env.JOB_NAME} completed successfully and is back to normal.
Build: ${env.BUILD_URL}
Logs: ${env.BUILD_URL}console
Changes: ${env.BUILD_URL}changes
--
Mr. Jenkins
Director of Continuous Integration
"""
)
}
}
}
}