You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2022/04/07 05:27:37 UTC
[struts-site] branch test-build updated: Uses pipeline to build staging version of the site
This is an automated email from the ASF dual-hosted git repository.
lukaszlenart pushed a commit to branch test-build
in repository https://gitbox.apache.org/repos/asf/struts-site.git
The following commit(s) were added to refs/heads/test-build by this push:
new 0ab15cd52 Uses pipeline to build staging version of the site
0ab15cd52 is described below
commit 0ab15cd5293a36121e3222ee81a8a147affa40d0
Author: Lukasz Lenart <lu...@apache.org>
AuthorDate: Thu Apr 7 07:27:31 2022 +0200
Uses pipeline to build staging version of the site
---
Jenkinsfile | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 104 insertions(+)
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 000000000..ed938cab0
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,104 @@
+#!groovy
+
+pipeline {
+ agent none
+ options {
+ buildDiscarder logRotator(numToKeepStr: '5')
+ timeout(40)
+ disableConcurrentBuilds()
+ skipStagesAfterUnstable()
+ }
+ stages {
+ stage('Build a staged websites') {
+ agent {
+ label 'git-websites'
+ }
+ steps {
+ sh """
+ echo Generiting a new version of website
+ mkdir -p target/content
+
+ export RUBY_PATH=${HOME}/.rvm
+ export GEM_HOME=${RUBY_PATH}/gems
+
+ curl -sSL https://get.rvm.io | bash -s -- --path ${RUBY_PATH}
+ mkdir -p ${GEM_HOME}/gems
+ gem install --install-dir ${GEM_HOME} bundler -v '2.1.4'
+
+ export PATH=${GEM_HOME}/bin:$PATH
+ bundle install --path ${GEM_HOME}
+ bundle
+ bundle exec jekyll build
+ """
+ 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 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
+ git checkout master
+ """
+ }
+ }
+ }
+ post {
+ // If this build failed, send an email to the list.
+ failure {
+ script {
+ emailext(
+ //to: "dev@struts.apache.org",
+ recipientProviders: [[$class: 'DevelopersRecipientProvider']],
+ from: "Mr. Jenkins <je...@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: "dev@struts.apache.org",
+ recipientProviders: [[$class: 'DevelopersRecipientProvider']],
+ from: 'Mr. Jenkins <je...@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
+"""
+ )
+ }
+ }
+ }
+}