]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
ci: Add Linux binary releases statically linked with musl
authorJoel Rosdahl <joel@rosdahl.net>
Sat, 24 Jan 2026 15:29:28 +0000 (16:29 +0100)
committerJoel Rosdahl <joel@rosdahl.net>
Sun, 25 Jan 2026 08:40:30 +0000 (09:40 +0100)
Closes #1665.

.github/workflows/build.yaml
ci/build-binary
ci/prepare-release

index 6dcfeb0a92d8adef91cde0b98e122f4de942cd94..3d9884ef8bc711a5b2c4e3c897b8a34f05e58427 100644 (file)
@@ -260,9 +260,9 @@ jobs:
             install
             README.md
 
-  build_linux_aarch64_binary:
+  build_linux_aarch64_binary_glibc:
     timeout-minutes: 30
-    name: Linux aarch64 binary
+    name: Linux aarch64 binary (glibc)
     runs-on: ubuntu-22.04
     strategy:
       fail-fast: false
@@ -283,13 +283,13 @@ jobs:
       - name: Upload binary
         uses: actions/upload-artifact@v4
         with:
-          name: linux-aarch64-binary
+          name: linux-aarch64-glibc-binary
           path: install/ccache
           retention-days: 3
 
-  build_linux_x86_64_binary:
+  build_linux_x86_64_binary_glibc:
     timeout-minutes: 30
-    name: Linux x86_64 binary
+    name: Linux x86_64 binary (glibc)
     runs-on: ubuntu-22.04
     container:
       image: almalinux:8
@@ -321,7 +321,39 @@ jobs:
       - name: Upload binary
         uses: actions/upload-artifact@v4
         with:
-          name: linux-x86_64-binary
+          name: linux-x86_64-glibc-binary
+          path: install/ccache
+          retention-days: 3
+
+  build_linux_musl_static_binary:
+    timeout-minutes: 30
+    name: Linux ${{ matrix.arch }} binary (musl static)
+    runs-on: ${{ matrix.runner }}
+    strategy:
+      fail-fast: false
+      matrix:
+        include:
+          - arch: aarch64
+            runner: ubuntu-22.04-arm
+          - arch: x86_64
+            runner: ubuntu-22.04
+    steps:
+      - name: Get source
+        uses: actions/checkout@v4
+      - name: Build in Alpine container
+        run: |
+          docker run --rm -v "$PWD:/work" -w /work \
+            -e GITHUB_REF \
+            -e GITHUB_REF_NAME \
+            -e GITHUB_SHA \
+            alpine:3.23 sh -c '
+              apk add --no-cache bash cmake g++ gcc git hiredis-dev make ninja xxhash-dev zstd-dev
+              CMAKE_GENERATOR=Ninja CMAKE_PARAMS="-D CMAKE_EXE_LINKER_FLAGS_INIT=-static" ci/build-binary
+          '
+      - name: Upload binary
+        uses: actions/upload-artifact@v4
+        with:
+          name: linux-${{ matrix.arch }}-musl-static-binary
           path: install/ccache
           retention-days: 3
 
@@ -618,8 +650,9 @@ jobs:
     needs:
       - build_darwin_binary
       - build_documentation
-      - build_linux_aarch64_binary
-      - build_linux_x86_64_binary
+      - build_linux_aarch64_binary_glibc
+      - build_linux_musl_static_binary
+      - build_linux_x86_64_binary_glibc
       - build_windows_binary
     runs-on: ubuntu-24.04
     steps:
index f519ef679ff6340ecf2e5b94627d5cbc54381b06..f7e71bce1b0703bf8ad9eb8552fa11e99ab81174 100755 (executable)
@@ -17,4 +17,4 @@ DESTDIR=$(pwd)/../install cmake --install . --strip
 
 cd ..
 find install -name 'ccache*' -type f -exec mv '{}' install ';'
-find install -ls
+find install -exec ls -ld '{}' +
index 0588b23d97d01b00737dfcb006a3df8f4cf50d33..e14e3b00668eacd8f596f7998fba3408161a3ffa 100755 (executable)
@@ -68,13 +68,16 @@ mkdir release
 prepare_source_release
 
 prepare_posix_binary_release darwin gz
-prepare_posix_binary_release linux-aarch64 xz
-prepare_posix_binary_release linux-x86_64 xz
+prepare_posix_binary_release linux-aarch64-glibc xz
+prepare_posix_binary_release linux-aarch64-musl-static xz
+prepare_posix_binary_release linux-x86_64-glibc xz
+prepare_posix_binary_release linux-x86_64-musl-static xz
 
 prepare_windows_binary_release windows-aarch64
 prepare_windows_binary_release windows-i686
 prepare_windows_binary_release windows-x86_64
 
-test_posix_binary_release linux-x86_64 xz
+test_posix_binary_release linux-x86_64-glibc xz
+test_posix_binary_release linux-x86_64-musl-static xz
 
 ls -l . release