]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
Adjust Circleci workflow to make the Docker images build
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 26 Aug 2024 10:39:07 +0000 (12:39 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 26 Aug 2024 12:19:22 +0000 (14:19 +0200)
Closes #12753

.circleci/build.yml [new file with mode: 0644]
.circleci/config.yml
releaser/releaser.go

diff --git a/.circleci/build.yml b/.circleci/build.yml
new file mode 100644 (file)
index 0000000..e3e0073
--- /dev/null
@@ -0,0 +1,120 @@
+version: 2.1
+
+# Passed from config.yml
+parameters:
+  skip:
+    type: boolean
+    default: true
+
+defaults: &defaults
+  resource_class: large
+  docker:
+    - image: bepsays/ci-hugoreleaser:1.22300.20000
+environment: &buildenv
+  GOMODCACHE: /root/project/gomodcache
+jobs:
+  prepare_release:
+    <<: *defaults
+    environment: &buildenv
+      GOMODCACHE: /root/project/gomodcache
+    steps:
+      - &remote-docker
+        setup_remote_docker:
+          version: 20.10.14
+      - checkout:
+          path: hugo
+      - &git-config
+        run:
+          command: |
+            git config --global user.email "bjorn.erik.pedersen+hugoreleaser@gmail.com"
+            git config --global user.name "hugoreleaser"
+      - run:
+          command: |
+            cd hugo
+            go mod download
+            go run -tags release main.go release --step 1
+      - save_cache:
+          key: git-sha-{{ .Revision }}
+          paths:
+            - hugo
+            - gomodcache
+  build_container1:
+    <<: [*defaults]
+    environment:
+      <<: [*buildenv]
+    steps:
+      - &restore-cache
+        restore_cache:
+          key: git-sha-{{ .Revision }}
+      - run:
+          no_output_timeout: 20m
+          command: |
+            mkdir -p /tmp/files/dist1
+            cd hugo
+            hugoreleaser build -paths "builds/container1/**" -workers 3 -dist /tmp/files/dist1 -chunks $CIRCLE_NODE_TOTAL -chunk-index $CIRCLE_NODE_INDEX
+      - &persist-workspace
+        persist_to_workspace:
+          root: /tmp/files
+          paths:
+            - dist1
+            - dist2
+    parallelism: 7
+  build_container2:
+    <<: [*defaults]
+    environment:
+      <<: [*buildenv]
+    docker:
+      - image: bepsays/ci-hugoreleaser-linux-arm64:1.22300.20000
+    steps:
+      - *restore-cache
+      - &attach-workspace
+        attach_workspace:
+          at: /tmp/workspace
+      - run:
+          command: |
+            mkdir -p /tmp/files/dist2
+            cd hugo
+            hugoreleaser build -paths "builds/container2/**" -workers 1 -dist /tmp/files/dist2
+      - *persist-workspace
+  archive_and_release:
+    <<: [*defaults]
+    environment:
+      <<: [*buildenv]
+    steps:
+      - *restore-cache
+      - *attach-workspace
+      - *git-config
+      - run:
+          name: Add github.com to known hosts
+          command: ssh-keyscan github.com >> ~/.ssh/known_hosts
+      - run:
+          command: |
+            cp -a /tmp/workspace/dist1/. ./hugo/dist
+            cp -a /tmp/workspace/dist2/. ./hugo/dist
+      - run:
+          command: |
+            cd hugo
+            hugoreleaser archive
+            hugoreleaser release
+            go run -tags release main.go release --step 2
+workflows:
+  release:
+    when:
+      and:
+        - equal: [false, << pipeline.parameters.skip >>]
+    jobs:
+      - prepare_release:
+          filters:
+            branches:
+              only: /release-.*/
+      - build_container1:
+          requires:
+            - prepare_release
+      - build_container2:
+          requires:
+            - prepare_release
+      - archive_and_release:
+          context: org-global
+          requires:
+            - build_container1
+            - build_container2
index 0ff9559365e44e8c2f76e103db866f588b147320..588d3d89440385e41fb30ddef29f645ac46df53b 100644 (file)
-parameters:
-
-# v2: 11m.
-defaults: &defaults
-  resource_class: large
-  docker:
-      - image: bepsays/ci-hugoreleaser:1.22300.20000
-environment: &buildenv
-      GOMODCACHE: /root/project/gomodcache
-version: 2
+version: 2.1
+setup: true
+orbs:
+  continuation: circleci/continuation@1
 jobs:
-  prepare_release:
-    <<: *defaults 
-    environment: &buildenv
-        GOMODCACHE: /root/project/gomodcache
-    steps:
-      - &remote-docker
-        setup_remote_docker: 
-          version: 20.10.14
-      - checkout: 
-          path: hugo
-      - &git-config
-        run:
-           command: |
-            git config --global user.email "bjorn.erik.pedersen+hugoreleaser@gmail.com"
-            git config --global user.name "hugoreleaser"
-      - run:
-          command: |
-            cd hugo
-            go mod download
-            go run -tags release main.go release --step 1
-      - save_cache:
-          key: git-sha-{{ .Revision }}
-          paths:
-            - hugo
-            - gomodcache
-  build_container1:
-    <<: [*defaults]
-    environment:
-      <<: [*buildenv]
-    steps:
-      - &restore-cache
-        restore_cache:
-          key: git-sha-{{ .Revision }}
-      - run:
-          no_output_timeout: 20m
-          command: |
-            mkdir -p /tmp/files/dist1
-            cd hugo
-            hugoreleaser build -paths "builds/container1/**" -workers 3 -dist /tmp/files/dist1 -chunks $CIRCLE_NODE_TOTAL -chunk-index $CIRCLE_NODE_INDEX
-      - &persist-workspace
-        persist_to_workspace:
-          root: /tmp/files
-          paths:
-            - dist1
-            - dist2
-    parallelism: 7
-  build_container2:
-    <<: [*defaults]
-    environment:
-        <<: [*buildenv]
+  setup:
     docker:
-    - image: bepsays/ci-hugoreleaser-linux-arm64:1.22300.20000
+      - image: cimg/go:1.21
     steps:
-      - *restore-cache
-      - &attach-workspace
-        attach_workspace:
-          at: /tmp/workspace
+      - checkout
       - run:
           command: |
-                  mkdir -p /tmp/files/dist2
-                  cd hugo
-                  hugoreleaser build -paths "builds/container2/**" -workers 1 -dist /tmp/files/dist2
-      - *persist-workspace
-  archive_and_release:
-    <<: [*defaults]
-    environment:
-        <<: [*buildenv]
-    steps:
-      - *restore-cache
-      - *attach-workspace
-      - *git-config
-      - run:
-          name: Add github.com to known hosts
-          command: ssh-keyscan github.com >> ~/.ssh/known_hosts
-      - run:
-          command: |
-            cp -a /tmp/workspace/dist1/. ./hugo/dist
-            cp -a /tmp/workspace/dist2/. ./hugo/dist
-      - run:
-          command: |
-            cd hugo
-            hugoreleaser archive
-            hugoreleaser release
-            go run -tags release main.go release --step 2
+            export SKIP=$(git log -n 1 $CIRCLE_SHA1 --pretty=%B | grep -q "NOCIRCLECI" && echo "true" || echo "false")
+            echo "{\"skip\": $SKIP}" >> set-up-params.json
+      - continuation/continue:
+          parameters: set-up-params.json
+          configuration_path: .circleci/build.yml
+
 workflows:
-  version: 2
-  release:
-      jobs:  
-        - prepare_release:
-            filters:
-              branches:
-                only: /release-.*/
-        - build_container1:
-            requires:
-            - prepare_release
-        - build_container2:
-            requires:
-            - prepare_release
-        - archive_and_release:
-            context: org-global
-            requires:
-            - build_container1
-            - build_container2
-     
-  
-       
+  configure:
+    when:
+      and:
+        - matches:
+            pattern: "^release.+"
+            value: << pipeline.git.branch >>
+    jobs:
+      - setup
index f2244842ad35643c1468b87e96c68a3d0e34cee2..953d33bdc63b328cb4dc4ca071f14774ffa47346 100644 (file)
@@ -101,7 +101,8 @@ func (r *ReleaseHandler) Run() error {
                        return err
                }
 
-               if _, err := r.git("commit", "-a", "-m", fmt.Sprintf("%s Bump versions for release of %s\n\n[ci skip]", commitPrefix, newVersion)); err != nil {
+               // The reason we use NOCIRCLECI, see https://github.com/gohugoio/hugo/issues/12753
+               if _, err := r.git("commit", "-a", "-m", fmt.Sprintf("%s Bump versions for release of %s\n\nNOCIRCLECI", commitPrefix, newVersion)); err != nil {
                        return err
                }