You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by rl...@apache.org on 2020/07/20 12:19:52 UTC

[celix-site] branch add-jenkinsfile updated (d5b7b9a -> b0024c4)

This is an automated email from the ASF dual-hosted git repository.

rlenferink pushed a change to branch add-jenkinsfile
in repository https://gitbox.apache.org/repos/asf/celix-site.git.


 discard d5b7b9a  Added Jenkinsfile for website deployment
     new b0024c4  Added Jenkinsfile for website deployment

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (d5b7b9a)
            \
             N -- N -- N   refs/heads/add-jenkinsfile (b0024c4)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 Jenkinsfile | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 mode change 100755 => 100644 Jenkinsfile


[celix-site] 01/01: Added Jenkinsfile for website deployment

Posted by rl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rlenferink pushed a commit to branch add-jenkinsfile
in repository https://gitbox.apache.org/repos/asf/celix-site.git

commit b0024c4852bd8902d06d0c7f4973fbd8bf3e7938
Author: Roy Lenferink <le...@gmail.com>
AuthorDate: Mon Jul 20 14:09:10 2020 +0200

    Added Jenkinsfile for website deployment
---
 Jenkinsfile | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 117 insertions(+)

diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000..e7a545e
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,117 @@
+#!groovy
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+pipeline {
+    agent {
+        // https://cwiki.apache.org/confluence/display/INFRA/Jenkins+node+labels
+        label 'git-websites'
+    }
+   
+    triggers {
+        // TODO: this can be removed once gitbox webhooks are re-enabled
+        pollSCM 'H/5 * * * *'
+    }
+
+    environment {
+        HUGO_VERSION = '0.63.2'
+        DEPLOY_BRANCH = 'asf-site'
+    }
+
+    stages {
+        stage('Prepare') {
+            steps {
+                script {
+                    // Capture last commit hash for final commit message
+                    env.LAST_SHA = sh(script:'git log -n 1 --pretty=format:\'%H\'', returnStdout: true).trim()
+
+                    // Setup Hugo
+                    env.HUGO_DIR = sh(script:'mktemp -d', returnStdout: true).trim()
+                    sh """
+                        mkdir -p ${env.HUGO_DIR}/bin
+                        cd ${env.HUGO_DIR}
+                        wget --no-verbose -O hugo.tar.gz https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz
+                        tar xfzv hugo.tar.gz
+                        mv hugo ${env.HUGO_DIR}/bin/
+                    """
+
+                    // Setup directory structure for generated content
+                    env.TMP_DIR = sh(script:'mktemp -d', returnStdout: true).trim()
+                    env.OUT_DIR = "${env.TMP_DIR}/content"
+                    sh "mkdir -p ${env.OUT_DIR}"
+                    
+                }
+            }
+        }
+        stage('Build') {
+            steps {
+                script {
+                    withEnv(["PATH+HUGO=${env.HUGO_DIR}/bin"]) {
+                        sh "hugo --destination ${env.OUT_DIR}"
+                    }
+                }
+            }
+        }
+        stage('Deploy') {
+            when {
+                anyOf {
+                    branch 'master'
+                }
+            }
+            steps {
+                script {
+                    // Checkout branch with generated content
+                    sh """
+                        git checkout ${DEPLOY_BRANCH}
+                        git pull origin ${DEPLOY_BRANCH}
+                    """
+                    
+                    // Remove the content of the target branch and replace it with the content of the temp folder
+                    sh """
+                        rm -rf ${WORKSPACE}/content
+                        git rm -r --cached content/*
+                        mkdir -p ${WORKSPACE}/content
+                        cp -rT ${env.TMP_DIR}/* ${WORKSPACE}/content
+                    """
+                    
+                    // Commit the changes to the target branch
+                    env.COMMIT_MESSAGE = "Updated site from ${BRANCH} (${env.LAST_SHA})"
+                    sh """
+                        git add -A
+                        git commit -m "${env.COMMIT_MESSAGE}" | true
+                    """
+                    
+                    // Push the generated content for deployment
+                    sh "git push -u origin ${DEPLOY_BRANCH}"
+                }
+            }
+        }
+    }
+    
+    post {
+        always {
+            script {
+                sh """
+                    rm -rf ${env.HUGO_DIR}
+                    rm -rf ${env.TMP_DIR}
+                """
+            }
+            deleteDir() /* clean up our workspace */
+        }
+    }
+}
+