From da319e2a7cb65f62642acf59fd166438c71f1e59 Mon Sep 17 00:00:00 2001 From: luoliwoshang <2643523683@qq.com> Date: Wed, 3 Sep 2025 19:11:30 +0800 Subject: [PATCH] ci(release test):use cache .sysroot both for test & release --- .github/workflows/release-build.yml | 82 ++++++++++++++++------------- 1 file changed, 44 insertions(+), 38 deletions(-) diff --git a/.github/workflows/release-build.yml b/.github/workflows/release-build.yml index 4b0f18a7..25fc9dfb 100644 --- a/.github/workflows/release-build.yml +++ b/.github/workflows/release-build.yml @@ -13,33 +13,46 @@ jobs: steps: - name: Check out code uses: actions/checkout@v5 - - name: Restore Darwin sysroot cache + - name: Check sysroot cache id: cache-darwin-sysroot uses: actions/cache/restore@v4 with: - path: .sysroot/darwin.tar.gz - key: darwin-sysroot-${{ hashFiles('.github/workflows/populate_darwin_sysroot.sh') }} + path: .sysroot/darwin + key: darwin-sysroot-${{ hashFiles('.github/workflows/populate_darwin_sysroot.sh') }}-0.0.1 + lookup-only: true - name: Populate Darwin sysroot if: steps.cache-darwin-sysroot.outputs.cache-hit != 'true' run: bash .github/workflows/populate_darwin_sysroot.sh - - name: Create Darwin sysroot tarball - if: steps.cache-darwin-sysroot.outputs.cache-hit != 'true' - run: tar -czvf .sysroot/darwin.tar.gz -C .sysroot darwin - name: Save Darwin sysroot cache if: steps.cache-darwin-sysroot.outputs.cache-hit != 'true' uses: actions/cache/save@v4 with: - path: .sysroot/darwin.tar.gz + path: .sysroot/darwin key: ${{ steps.cache-darwin-sysroot.outputs.cache-primary-key }} - - name: Upload Darwin sysroot tarball - uses: actions/upload-artifact@v4 + populate-linux-sysroot: + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v5 + - name: Check sysroot cache + id: cache-linux-sysroot + uses: actions/cache/restore@v4 with: - name: darwin-sysroot-tarball - path: .sysroot/darwin.tar.gz - compression-level: 0 + path: .sysroot/linux + key: linux-sysroot-${{ hashFiles('.github/workflows/populate_linux_sysroot.sh') }}-0.0.1 + lookup-only: true + - name: Populate Linux sysroot + if: steps.cache-linux-sysroot.outputs.cache-hit != 'true' + run: bash .github/workflows/populate_linux_sysroot.sh + - name: Save Linux sysroot cache + uses: actions/cache/save@v4 + if: steps.cache-linux-sysroot.outputs.cache-hit != 'true' + with: + path: .sysroot/linux + key: ${{ steps.cache-linux-sysroot.outputs.cache-primary-key }} build: runs-on: ubuntu-latest - needs: populate-darwin-sysroot + needs: [populate-darwin-sysroot, populate-linux-sysroot] steps: - name: Check out code uses: actions/checkout@v5 @@ -53,28 +66,18 @@ jobs: uses: docker/setup-qemu-action@v3 with: image: tonistiigi/binfmt:qemu-v7.0.0-28 - - name: Download Darwin sysroot tarball - uses: actions/download-artifact@v5 + - name: Restore Macos sysroot cache + id: cache-macos-sysroot + uses: actions/cache/restore@v4 with: - name: darwin-sysroot-tarball - path: .sysroot - - name: Populate Darwin sysroot - run: tar -xzvf .sysroot/darwin.tar.gz -C .sysroot + path: .sysroot/darwin + key: darwin-sysroot-${{ hashFiles('.github/workflows/populate_darwin_sysroot.sh') }}-0.0.1 - name: Restore Linux sysroot cache id: cache-linux-sysroot uses: actions/cache/restore@v4 with: - path: .sysroot - key: linux-sysroot-${{ hashFiles('.github/workflows/populate_linux_sysroot.sh') }} - - name: Populate Linux sysroot - if: steps.cache-linux-sysroot.outputs.cache-hit != 'true' - run: bash .github/workflows/populate_linux_sysroot.sh - - name: Save Linux sysroot cache - if: steps.cache-linux-sysroot.outputs.cache-hit != 'true' - uses: actions/cache/save@v4 - with: - path: .sysroot - key: ${{ steps.cache-linux-sysroot.outputs.cache-primary-key }} + path: .sysroot/linux + key: linux-sysroot-${{ hashFiles('.github/workflows/populate_linux_sysroot.sh') }}-0.0.1 - name: Run GoReleaser (Build & Test) env: GITHUB_TOKEN: ${{github.token}} @@ -200,15 +203,18 @@ jobs: uses: docker/setup-qemu-action@v3 with: image: tonistiigi/binfmt:qemu-v7.0.0-28 - - name: Download Darwin sysroot tarball - uses: actions/download-artifact@v5 + - name: Restore Macos sysroot cache + id: cache-macos-sysroot + uses: actions/cache/restore@v4 with: - name: darwin-sysroot-tarball - path: .sysroot - - name: Populate Darwin sysroot - run: tar -xzvf .sysroot/darwin.tar.gz -C .sysroot - - name: Populate Linux sysroot - run: bash .github/workflows/populate_linux_sysroot.sh + path: .sysroot/darwin + key: darwin-sysroot-${{ hashFiles('.github/workflows/populate_darwin_sysroot.sh') }}-0.0.1 + - name: Restore Linux sysroot cache + id: cache-linux-sysroot + uses: actions/cache/restore@v4 + with: + path: .sysroot/linux + key: linux-sysroot-${{ hashFiles('.github/workflows/populate_linux_sysroot.sh') }}-0.0.1 - name: Run GoReleaser (Release) env: GITHUB_TOKEN: ${{github.token}}