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()
		}
	}
}
