Added Jenkinsfile
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000..4068696
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,99 @@
+pipeline {
+ agent {
+ label 'git-websites'
+ }
+
+ options {
+ buildDiscarder(logRotator(numToKeepStr: '10'))
+ timestamps()
+ }
+
+ triggers {
+ pollSCM('H/15 * * * *')
+ }
+
+ stages {
+ stage('SCM Checkout') {
+ steps {
+ deleteDir()
+ checkout scm
+ }
+ }
+
+ stage('Check environment') {
+ 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') {
+ steps {
+ sh '''
+ . "${rvm_path}/scripts/rvm"
+ set -e
+ gem install bundler
+ bundle install
+ '''
+ }
+ }
+
+ stage('Build site') {
+ steps {
+ sh '''
+ . "${rvm_path}/scripts/rvm"
+ set -e
+ bundle exec jekyll build --verbose
+ '''
+ sh 'ls -lR _site'
+ }
+ }
+
+ stage('Publish') {
+ 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
+ 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()
+ }
+ }
+}