diff --git a/.github/actions/build-rust/action.yml b/.github/actions/build-rust/action.yml index 3a36e6405..22300abdf 100644 --- a/.github/actions/build-rust/action.yml +++ b/.github/actions/build-rust/action.yml @@ -34,15 +34,10 @@ runs: echo "TARGET_CC=clang" >> "$GITHUB_ENV" - name: Cache cargo - uses: actions/cache@v4 + uses: Swatinem/rust-cache@v2 with: - path: | - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - ~/.napi-rs - target/${{ inputs.target }} - key: stable-${{ inputs.target }}-cargo-cache + save-if: ${{ github.ref_name == 'canary' }} + shared-key: ${{ inputs.target }}-inputs.package - name: Build shell: bash run: | diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 9fc234fd1..965c35364 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -31,14 +31,14 @@ jobs: name: Optimize CI runs-on: ubuntu-latest outputs: - skip: ${{ steps.graphite.outputs.skip }} + skip: ${{ steps.check_skip.outputs.skip }} steps: - uses: actions/checkout@v4 - name: Graphite CI Optimizer uses: withgraphite/graphite-ci-action@main - id: graphite + id: check_skip with: - token: ${{ secrets.GRAPHITE_CI_OPTIMIZER_TOKEN }} + graphite_token: ${{ secrets.GRAPHITE_CI_OPTIMIZER_TOKEN }} analyze: name: Analyze @@ -311,6 +311,8 @@ jobs: build-server-native: name: Build Server native runs-on: ubuntu-latest + needs: optimize_ci + if: needs.optimize_ci.outputs.skip == 'false' env: CARGO_PROFILE_RELEASE_DEBUG: '1' steps: @@ -335,7 +337,8 @@ jobs: build-electron-renderer: name: Build @affine/electron renderer runs-on: ubuntu-latest - + needs: optimize_ci + if: needs.optimize_ci.outputs.skip == 'false' steps: - uses: actions/checkout@v4 - name: Setup Node.js @@ -425,6 +428,8 @@ jobs: rust-test: name: Run native tests runs-on: ubuntu-latest + needs: optimize_ci + if: needs.optimize_ci.outputs.skip == 'false' env: CARGO_TERM_COLOR: always steps: @@ -826,6 +831,8 @@ jobs: test-build-mobile-app: uses: ./.github/workflows/release-mobile.yml + needs: optimize_ci + if: needs.optimize_ci.outputs.skip == 'false' with: build-type: canary build-target: development