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
				sh 'git submodule update --init --recursive'
			}
		}

		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'
			}
			environment {
				// GH Personal access token @abesto
				GITUSER = credentials('2d27b827-20c2-4173-ac84-f3abc308fc88')
			}
			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 config --local credential.helper "!p() { echo username=\\$GITUSER_USR; echo password=\\$GITUSER_PSW; }; p"
					git commit -m "$commitmsg"
					git log asf-site -3
					git push origin asf-site
				fi
				'''
			}
		}
	}

	post {
		always {
			deleteDir()
		}
	}
}
