From e21043829660cf5618c6e6bcf1892d9a88370163 Mon Sep 17 00:00:00 2001 From: "Robin B (aider)" Date: Sun, 13 Apr 2025 21:55:30 +0200 Subject: [PATCH 1/3] refactor: Build and push multi-platform Docker image in one step --- .github/workflows/release.yaml | 41 +++++----------------------------- 1 file changed, 6 insertions(+), 35 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index f5ba88b..b32b7c4 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -64,43 +64,14 @@ jobs: with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and push Docker image for amd64 + - name: Build and push multi-platform Docker image uses: docker/build-push-action@v5 with: - platforms: linux/amd64 + platforms: linux/amd64,linux/arm64 push: true tags: | - cybuerg/cfspeedtest:${{ github.ref_name }}-amd64 - cybuerg/cfspeedtest:latest-amd64 + cybuerg/cfspeedtest:${{ github.ref_name }} + cybuerg/cfspeedtest:latest cache-from: type=local,src=/tmp/.buildx-cache - cache-to: type=local,dest=/tmp/.buildx-cache-amd64,mode=max - - - name: Build and push Docker image for arm64 - uses: docker/build-push-action@v5 - with: - platforms: linux/arm64 - push: true - tags: | - cybuerg/cfspeedtest:${{ github.ref_name }}-arm64 - cybuerg/cfspeedtest:latest-arm64 - cache-from: type=local,src=/tmp/.buildx-cache - cache-to: type=local,dest=/tmp/.buildx-cache-arm64,mode=max - - - name: Create and push multi-platform manifest - run: | - docker manifest create cybuerg/cfspeedtest:${{ github.ref_name }} \ - cybuerg/cfspeedtest:${{ github.ref_name }}-amd64 \ - cybuerg/cfspeedtest:${{ github.ref_name }}-arm64 - docker manifest create cybuerg/cfspeedtest:latest \ - cybuerg/cfspeedtest:latest-amd64 \ - cybuerg/cfspeedtest:latest-arm64 - docker manifest push cybuerg/cfspeedtest:${{ github.ref_name }} - docker manifest push cybuerg/cfspeedtest:latest - - - name: Merge and move cache - run: | - mkdir -p /tmp/.buildx-cache-new - cp -r /tmp/.buildx-cache-amd64/* /tmp/.buildx-cache-new/ || true - cp -r /tmp/.buildx-cache-arm64/* /tmp/.buildx-cache-new/ || true - rm -rf /tmp/.buildx-cache - mv /tmp/.buildx-cache-new /tmp/.buildx-cache + # Use mode=max for cache-to to ensure both platform caches are written + cache-to: type=local,dest=/tmp/.buildx-cache,mode=max From 352217af94a221f082ecd0b0c61f0588d6640fdc Mon Sep 17 00:00:00 2001 From: "Robin B (aider)" Date: Sun, 13 Apr 2025 22:02:00 +0200 Subject: [PATCH 2/3] feat: Add QEMU setup for cross-platform arm64 builds in release workflow --- .github/workflows/release.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index b32b7c4..8bae4e8 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -52,6 +52,8 @@ jobs: - uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx cache uses: actions/cache@v3 with: From e7b08fe17808f137b981d0c456c12d3fb5e2b010 Mon Sep 17 00:00:00 2001 From: Robin B Date: Sun, 13 Apr 2025 22:33:12 +0200 Subject: [PATCH 3/3] chore: Release cfspeedtest version 1.3.4 --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 966863b..200107e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -144,7 +144,7 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "cfspeedtest" -version = "1.3.3" +version = "1.3.4" dependencies = [ "clap", "clap_complete", diff --git a/Cargo.toml b/Cargo.toml index 07bab27..9c6e4ce 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cfspeedtest" -version = "1.3.3" +version = "1.3.4" edition = "2021" license = "MIT" description = "Unofficial CLI for speed.cloudflare.com"