[master] d3b60b06a Adjust CircleCI config to be compatible with release branches

Martin Blix Grydeland martin at varnish-software.com
Wed Sep 15 14:17:05 UTC 2021


commit d3b60b06a5c34d5d6b3ea086cc0161841f8828b4
Author: Martin Blix Grydeland <martin at varnish-software.com>
Date:   Wed Sep 15 14:03:38 2021 +0200

    Adjust CircleCI config to be compatible with release branches
    
    Add the necessary bits to the master CCI configuration to make the package
    building parts also work in the release branches. This way there is no
    need to tailor the release branches' CCI setup on release day.
    
    This should not (famous last words) change how the weekly packages from
    the master branch are generated.

diff --git a/.circleci/config.yml b/.circleci/config.yml
index 8b834c526..b459dc3d1 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -7,6 +7,12 @@ parameters:
   pkg-commit:
     type: string
     default: "master"
+  dist-url:
+    type: string
+    default: ""
+  dist-url-sha256:
+    type: string
+    default: ""
   configure_args:
     type: string
     default: |
@@ -17,7 +23,7 @@ parameters:
         --with-persistent-storage \
 jobs:
   dist:
-    description: Builds varnish-x.y.z.tar.gz that is used later for the packaging jobs
+    description: Build or download varnish-x.y.z.tar.gz that is used later for the packaging jobs
     docker:
       - image: centos:7
     steps:
@@ -37,17 +43,46 @@ jobs:
                 python3 \
                 python-sphinx
       - checkout
-      - run:
-          name: Create the dist tarball
-          command: |
-            git checkout << pipeline.parameters.vc-commit >>
-            # if version is "trunk", it's a weekly tarball, override the version
-            if grep 'AC_INIT.*trunk.*' ./configure.ac; then
-                sed -i -e "s/^AC_INIT.*trunk.*/AC_INIT([Varnish], [$(date +%Y%m%d)], [varnish-dev at varnish-cache.org])/" ./configure.ac
-                touch .is_weekly
-            fi
-            ./autogen.des --quiet
-            make dist -j 16
+      - when:
+          condition: << pipeline.parameters.dist-url >>
+          steps:
+            - run:
+                name: Download the dist tarball
+                command: |
+                  curl -s << pipeline.parameters.dist-url >> -o varnish-dist.tar.gz
+            - when:
+                condition: << pipeline.parameters.dist-url-sha256 >>
+                steps:
+                  - run:
+                      name: Verify downloaded tarball
+                      command: |
+                        echo "<< pipeline.parameters.dist-url-sha256 >> varnish-dist.tar.gz" | sha256sum -c
+            - run:
+                name: Rename the dist tarball by parsed version
+                command: |
+                  mkdir parse-version-tmp
+                  cd parse-version-tmp
+                  tar xzf ../varnish-dist.tar.gz
+                  VERSION=$(varnish-*/configure --version | awk 'NR == 1 {print $NF}')
+                  cd ..
+                  mv -v varnish-dist.tar.gz varnish-${VERSION}.tar.gz
+      - unless:
+          condition: << pipeline.parameters.dist-url >>
+          steps:
+            - run:
+                name: Create the dist tarball
+                command: |
+                  git checkout << pipeline.parameters.vc-commit >>
+                  # Locally built tarballs are always built with weekly in package name
+                  touch .is_weekly
+                  # If version is "trunk", override version to add date
+                  if grep 'AC_INIT.*trunk.*' ./configure.ac; then
+                      sed -e "s/AC_INIT(\[\(.*\)\], \[\(.*\)\], \[\(.*\)\])/AC_INIT([\1], [$(date +%Y%m%d)], [\3])/" ./configure.ac
+                  else
+                      sed -e "s/AC_INIT(\[\(.*\)\], \[\(.*\)\], \[\(.*\)\])/AC_INIT([\1], [\2-$(date +%Y%m%d)], [\3])/" ./configure.ac
+                  fi
+                  ./autogen.des --quiet
+                  make dist -j 16
       - persist_to_workspace:
           root: .
           paths:


More information about the varnish-commit mailing list