blob: 27604e4ba2095d0605a3c3aa1b0e5050bed03e38 [file] [log] [blame]
pipeline {
agent {
label 'git-websites'
}
options {
buildDiscarder(logRotator(numToKeepStr: '10'))
timestamps()
}
triggers {
pollSCM('H/15 * * * *')
}
stages {
stage('SCM Checkout') {
when {
anyOf {
branch 'master'
changeRequest target: 'master'
}
}
steps {
deleteDir()
checkout scm
}
}
stage('Check environment') {
when {
anyOf {
branch 'master'
changeRequest target: 'master'
}
}
steps {
sh 'env'
sh 'pwd'
sh 'ls'
sh 'alias'
sh 'git config --list --local'
sh 'git config --list --global'
sh 'git status'
}
}
stage('Install Jekyll') {
when {
anyOf {
branch 'master'
changeRequest target: 'master'
}
}
steps {
sh '''
. "${rvm_path}/scripts/rvm"
set -e
gem install bundler
bundle install
'''
}
}
stage('Build site') {
when {
anyOf {
branch 'master'
changeRequest target: 'master'
}
}
steps {
sh '''
. "${rvm_path}/scripts/rvm"
set -e
bundle exec jekyll build --verbose
'''
sh 'ls -lR _site'
}
}
stage('Publish') {
when {
branch 'master'
}
steps {
sh '''
set -xeuo pipefail
srchash="$(git rev-parse --short HEAD)"
commitmsg="Automatic site generation from ${srchash}"
builddir="$(mktemp -d)"
mv _site "${builddir}/"
ls -lR "${builddir}/_site/"
git fetch origin asf-site:asf-site
git reset --hard
git checkout asf-site
git log -3
git status
rsync -avrh --delete --exclude=".git" "${builddir}/_site/" ./
git status
git diff
git add .
if [ -z "$(git status --porcelain)" ]; then
echo 'No changes to commit/push'
else
git commit -m "$commitmsg"
git pull --rebase
git log asf-site -3
git push origin asf-site
fi
'''
}
}
}
post {
always {
deleteDir()
}
}
}