You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@community.apache.org by bd...@apache.org on 2023/04/21 09:16:41 UTC

[comdev-site] branch main updated: Fix Jenkinsfile for staging branches

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

bdelacretaz pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/comdev-site.git


The following commit(s) were added to refs/heads/main by this push:
     new ae23306  Fix Jenkinsfile for staging branches
ae23306 is described below

commit ae23306bc18af2c05611a58de39efa921fd1ec0d
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Fri Apr 21 11:16:12 2023 +0200

    Fix Jenkinsfile for staging branches
---
 Jenkinsfile | 39 ++++++++++++++++++++++++++++++++++++++-
 1 file changed, 38 insertions(+), 1 deletion(-)

diff --git a/Jenkinsfile b/Jenkinsfile
index 43ce8b1..faa88e9 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -24,6 +24,7 @@ pipeline {
    
     environment {
         DEPLOY_BRANCH = 'asf-site'
+        STAGING_BRANCH = "${env.BRANCH_NAME}-staging"
         HUGO_VERSION = '0.111.3'
         HUGO_HASH = 'b382aacb522a470455ab771d0e8296e42488d3ea4e61fe49c11c32ec7fb6ee8b'
         PAGEFIND_VERSION = '0.12.0'
@@ -90,7 +91,7 @@ pipeline {
                     // 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/*
+                        git rm -r --ignore-unmatch --cached content/*
                         mkdir -p ${WORKSPACE}/content
                         cp -rT ${env.TMP_DIR}/* ${WORKSPACE}/content
                     """
@@ -108,6 +109,42 @@ pipeline {
                 }
             }
         }
+        stage('Staging') {
+            // Mostly duplicated from the Deploy branch, there must be a better way...
+            when {
+                not {
+                    branch 'main'
+                }
+            }
+            steps {
+                script {
+                    // Checkout or create branch with generated content
+                    sh """
+                        git checkout ${STAGING_BRANCH} || git checkout -b ${STAGING_BRANCH}
+                        git pull origin ${STAGING_BRANCH} || echo "branch ${STAGING_BRANCH} is new"
+                    """
+
+                    // 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 --ignore-unmatch --cached content/*
+                        mkdir -p ${WORKSPACE}/content
+                        cp -rT ${env.TMP_DIR}/* ${WORKSPACE}/content
+                    """
+
+                    // Commit the changes to the target branch
+                    env.COMMIT_MESSAGE1 = "Updated ${STAGING_BRANCH} from ${BRANCH_NAME} at ${env.LAST_SHA}"
+                    env.COMMIT_MESSAGE2 = "Built from ${BUILD_URL}"
+                    sh """
+                        git add -A
+                        git commit -m "${env.COMMIT_MESSAGE1}" -m "${env.COMMIT_MESSAGE2}" | true
+                    """
+
+                    // Push the generated content for deployment
+                    sh "git push -u origin ${STAGING_BRANCH}"
+                }
+            }
+        }
     }
     
     post {