diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 15e2d5d163..a1adddafc2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -19,10 +19,26 @@ concurrency: cancel-in-progress: ${{ github.ref != 'refs/heads/master' }} jobs: + setup: + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + - name: Set up environment + uses: ./.github/actions/setup + with: + download-translations: 'false' + api: + needs: setup runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Set up environment uses: ./.github/actions/setup with: @@ -45,9 +61,12 @@ jobs: path: api-stats.json crdt: + needs: setup runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Set up environment uses: ./.github/actions/setup with: @@ -70,9 +89,12 @@ jobs: path: crdt-stats.json web: + needs: setup runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Set up environment uses: ./.github/actions/setup - name: Build Web @@ -89,9 +111,12 @@ jobs: path: packages/desktop-client/build-stats cli: + needs: setup runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Set up environment uses: ./.github/actions/setup with: @@ -114,9 +139,12 @@ jobs: path: cli-stats.json server: + needs: setup runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Set up environment uses: ./.github/actions/setup with: diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 139dc28a0d..3d3ea32799 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -12,10 +12,25 @@ concurrency: cancel-in-progress: ${{ github.ref != 'refs/heads/master' }} jobs: + setup: + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + - name: Set up environment + uses: ./.github/actions/setup + with: + download-translations: 'false' constraints: + needs: setup runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Set up environment uses: ./.github/actions/setup with: @@ -23,9 +38,12 @@ jobs: - name: Check dependency version consistency run: yarn constraints lint: + needs: setup runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Set up environment uses: ./.github/actions/setup with: @@ -33,9 +51,12 @@ jobs: - name: Lint run: yarn lint typecheck: + needs: setup runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Set up environment uses: ./.github/actions/setup with: @@ -43,9 +64,12 @@ jobs: - name: Typecheck run: yarn typecheck validate-cli: + needs: setup runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Set up environment uses: ./.github/actions/setup with: @@ -55,9 +79,12 @@ jobs: - name: Check that the built CLI works run: node packages/sync-server/build/bin/actual-server.js --version test: + needs: setup runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Set up environment uses: ./.github/actions/setup with: @@ -75,10 +102,13 @@ jobs: - uses: zizmorcore/zizmor-action@71321a20a9ded102f6e9ce5718a2fcec2c4f70d8 # v0.5.2 migrations: + needs: setup if: github.event_name == 'pull_request' runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Set up environment uses: ./.github/actions/setup with: diff --git a/upcoming-release-notes/7551.md b/upcoming-release-notes/7551.md new file mode 100644 index 0000000000..f175b29399 --- /dev/null +++ b/upcoming-release-notes/7551.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [actualbudget] +--- + +Share the CI dependency install across `check.yml` and `build.yml` jobs via a single upstream `setup` job to cut redundant `yarn install` runs on cache-cold workflow runs.