ci: Stop doing unneeded setup work #4845
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: JS Package Tests | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| paths: | |
| - package.json | |
| - pnpm-workspace.yaml | |
| - pnpm-lock.yaml | |
| - "packages/**" | |
| - ".github/actions/**" | |
| - ".github/workflows/test-js-packages.yml" | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| permissions: | |
| actions: write | |
| contents: read | |
| pull-requests: read | |
| jobs: | |
| js_packages: | |
| name: "JS Package Tests (${{matrix.os.name}}, Node ${{matrix.node-version}})" | |
| timeout-minutes: 30 | |
| runs-on: ${{ matrix.os.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - name: ubuntu | |
| runner: ubuntu-latest | |
| - name: macos | |
| runner: macos-latest | |
| node-version: | |
| - 18 | |
| - 20 | |
| - 22 | |
| env: | |
| TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
| TURBO_TEAM: ${{ vars.TURBO_TEAM }} | |
| TURBO_CACHE: remote:rw | |
| steps: | |
| # on main -> current + prev commit | |
| # pr -> pr commits + base commit | |
| - name: Determine fetch depth | |
| id: fetch-depth | |
| run: | | |
| echo "depth=$(( ${{ github.event.pull_request.commits || 1 }} + 1 ))" >> $GITHUB_OUTPUT | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ github.ref }} | |
| fetch-depth: ${{ steps.fetch-depth.outputs.depth }} | |
| - name: "Setup Node" | |
| uses: ./.github/actions/setup-node | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| env: | |
| PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 | |
| - name: Install Global Turbo | |
| uses: ./.github/actions/install-global-turbo | |
| - name: Run tests | |
| # We manually set TURBO_API to an empty string to override Hetzner env | |
| # We filter out turborepo-repository because it's a native package and needs | |
| # to run when turbo core changes. This job (`js_packages`) does not run on turborpeo core | |
| # changes, and we don't want to enable that beahvior for _all_ our JS packages. | |
| run: | | |
| TURBO_API= turbo run check-types test build package-checks --filter="!turborepo-repository" --filter={./packages/*}...[${{ github.event.pull_request.base.sha || 'HEAD^1' }}] --color --env-mode=strict | |
| env: | |
| NODE_VERSION: ${{ matrix.node-version }} | |
| summary: | |
| name: Turborepo JS Test Summary | |
| runs-on: ubuntu-latest | |
| if: always() | |
| needs: | |
| - js_packages | |
| steps: | |
| - name: Compute info | |
| run: | | |
| cancelled=false | |
| failure=false | |
| subjob () { | |
| local result=$1 | |
| if [ "$result" = "cancelled" ]; then | |
| cancelled=true | |
| elif [ "$result" != "success" ] && [ "$result" != "skipped" ]; then | |
| failure=true | |
| fi | |
| } | |
| subjob ${{needs.js_packages.result}} | |
| if [ "$cancelled" = "true" ]; then | |
| echo "Job was cancelled." | |
| exit 0 | |
| elif [ "$failure" = "true" ]; then | |
| echo "Job failed." | |
| exit 1 | |
| else | |
| echo "Job succeeded." | |
| exit 0 | |
| fi |