You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@community.apache.org by se...@apache.org on 2023/04/26 19:03:27 UTC

[comdev-site] branch staging-tidyup created (now eafbc33)

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

sebb pushed a change to branch staging-tidyup
in repository https://gitbox.apache.org/repos/asf/comdev-site.git


      at eafbc33  Simplify Jenkinsfile

This branch includes the following new commits:

     new eafbc33  Simplify Jenkinsfile

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.



[comdev-site] 01/01: Simplify Jenkinsfile

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

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

commit eafbc33af57e84e624759c9b518e6382cde17ed9
Author: Sebb <se...@apache.org>
AuthorDate: Wed Apr 26 20:03:17 2023 +0100

    Simplify Jenkinsfile
---
 Jenkinsfile | 78 ++++++++++++++++++-------------------------------------------
 1 file changed, 23 insertions(+), 55 deletions(-)

diff --git a/Jenkinsfile b/Jenkinsfile
index 9f52128..171823e 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -23,8 +23,7 @@ pipeline {
     }
    
     environment {
-        DEPLOY_BRANCH = 'asf-site'
-        STAGING_BRANCH = "${env.BRANCH_NAME}-staging"
+        DEPLOY_BRANCH = "${env.BRANCH_NAME == "main" ? "asf-site" : "${env.BRANCH_NAME}-staging"}"
         HUGO_VERSION = '0.111.3'
         HUGO_HASH = 'b382aacb522a470455ab771d0e8296e42488d3ea4e61fe49c11c32ec7fb6ee8b'
         PAGEFIND_VERSION = '0.12.0'
@@ -71,67 +70,36 @@ pipeline {
                 script {
                     sh "${HUGO_DIR}/bin/hugo --destination ${env.OUT_DIR}"
                     sh "${PAGEFIND_DIR}/bin/pagefind --source ${env.OUT_DIR}"
+                    sh "rm -f .hugo_build.lock"
                 }
             }
         }
+        // https://www.jenkins.io/doc/book/pipeline/syntax/#built-in-conditions
+        // branch uses Ant-style patterns by default:
+        // https://ant.apache.org/manual/dirtasks.html#patterns
+        // Exclude branches ending in '-staging'
         stage('Deploy') {
             when {
-                anyOf {
-                    branch 'main'
+                not {
+                  branch '**/*-staging'
                 }
             }
             steps {
                 script {
-                    // Checkout branch with generated content
+                    // Checkout branch with generated content, creating it if necessary
+                    // We only want the generated content + .asf.yaml
                     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 --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 ${DEPLOY_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 ${DEPLOY_BRANCH}"
-                }
-            }
-        }
-        stage('Staging') {
-            // Mostly duplicated from the Deploy branch, there must be a better way...
-            // https://www.jenkins.io/doc/book/pipeline/syntax/#built-in-conditions
-            // branch uses Ant-style patterns by default:
-            // https://ant.apache.org/manual/dirtasks.html#patterns
-            // Exclude branches ending in '-staging'
-            // This agrees with the definition of STAGING_BRANCH
-            when {
-                allOf {
-                    not {
-                      branch '**/*-staging'
-                    }
-                    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"
+                        if git checkout ${DEPLOY_BRANCH}
+                        then
+                          git pull origin ${DEPLOY_BRANCH}
+                        else
+                          echo "branch ${DEPLOY_BRANCH} is new; create basic site"
+                          git checkout --orphan ${DEPLOY_BRANCH} -f
+                          git rm -rf .
+                          # assume we have an asf.yaml file
+                          git checkout origin/${BRANCH_NAME} -- .asf.yaml
+                          git add .asf.yaml -f
+                        fi
                     """
 
                     // Remove the content of the target branch and replace it with the content of the temp folder
@@ -143,7 +111,7 @@ pipeline {
                     """
 
                     // Commit the changes to the target branch
-                    env.COMMIT_MESSAGE1 = "Updated ${STAGING_BRANCH} from ${BRANCH_NAME} at ${env.LAST_SHA}"
+                    env.COMMIT_MESSAGE1 = "Updated ${DEPLOY_BRANCH} from ${BRANCH_NAME} at ${env.LAST_SHA}"
                     env.COMMIT_MESSAGE2 = "Built from ${BUILD_URL}"
                     sh """
                         git add -A
@@ -151,7 +119,7 @@ pipeline {
                     """
 
                     // Push the generated content for deployment
-                    sh "git push -u origin ${STAGING_BRANCH}"
+                    sh "git push -u origin ${DEPLOY_BRANCH}"
                 }
             }
         }