Remove install job, use setup-node's yarn cache
#2095
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: PR | |
| on: | |
| pull_request: | |
| types: [opened, synchronize] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| name: Build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version-file: '.node-version' | |
| cache: yarn | |
| - run: yarn install --immutable | |
| - run: yarn build | |
| - uses: actions/cache@v4 | |
| with: | |
| key: build-${{ github.sha }} | |
| path: ${{ env.BUILD-CACHE-LIST }} | |
| cspell: | |
| name: CSpell | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version-file: '.node-version' | |
| cache: yarn | |
| - run: yarn install --immutable | |
| - run: yarn lint-cspell | |
| prettier: | |
| name: Prettier | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version-file: '.node-version' | |
| cache: yarn | |
| - run: yarn install --immutable | |
| - run: yarn pretty-check | |
| jest: | |
| name: Jest Unit & Integration Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version-file: '.node-version' | |
| cache: yarn | |
| - run: yarn install --immutable | |
| - run: yarn test --coverage | |
| - uses: codecov/codecov-action@v4 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| files: coverage/lcov.info | |
| fail_ci_if_error: true | |
| verbose: true | |
| vitest: | |
| name: Vitest Unit Tests | |
| runs-on: ubuntu-latest | |
| needs: [build] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version-file: '.node-version' | |
| cache: yarn | |
| - run: yarn install --immutable | |
| - uses: actions/cache@v4 | |
| with: | |
| key: build-${{ github.sha }} | |
| path: ${{ env.BUILD-CACHE-LIST }} | |
| - run: yarn vitest | |
| eslint: | |
| name: ESLint | |
| runs-on: ubuntu-latest | |
| needs: [build] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version-file: '.node-version' | |
| cache: yarn | |
| - run: yarn install --immutable | |
| - uses: actions/cache@v4 | |
| with: | |
| key: build-${{ github.sha }} | |
| path: ${{ env.BUILD-CACHE-LIST }} | |
| - run: yarn eslint | |
| types-check: | |
| name: Types Check | |
| runs-on: ubuntu-latest | |
| needs: [build] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version-file: '.node-version' | |
| cache: yarn | |
| - run: yarn install --immutable | |
| - uses: actions/cache@v4 | |
| with: | |
| key: build-${{ github.sha }} | |
| path: ${{ env.BUILD-CACHE-LIST }} | |
| - run: yarn types:check | |
| e2e: | |
| name: Cypress | |
| runs-on: ubuntu-latest | |
| needs: [build] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version-file: '.node-version' | |
| cache: yarn | |
| - run: yarn install --immutable | |
| - uses: actions/cache@v4 | |
| with: | |
| key: build-${{ github.sha }} | |
| path: ${{ env.BUILD-CACHE-LIST }} | |
| - uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cache/Cypress | |
| key: cypress-${{ runner.os }}-${{ hashFiles('yarn.lock') }} | |
| - name: Cypress run | |
| uses: cypress-io/github-action@v6 | |
| with: | |
| install: false | |
| command: yarn e2e | |
| - uses: actions/upload-artifact@v4 | |
| if: failure() | |
| with: | |
| name: cypress-screenshots | |
| path: packages/graphiql/cypress/screenshots | |
| if-no-files-found: ignore | |
| - uses: actions/upload-artifact@v4 | |
| if: failure() | |
| with: | |
| name: cypress-videos | |
| path: packages/graphiql/cypress/videos | |
| if-no-files-found: ignore | |
| canary: | |
| name: Canary | |
| runs-on: ubuntu-latest | |
| # ensure the basic checks pass before running the canary | |
| needs: [build, jest, eslint, vitest, e2e] | |
| if: github.event.pull_request.head.repo.full_name == github.repository | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version-file: '.node-version' | |
| cache: yarn | |
| - run: yarn install --immutable | |
| - uses: actions/cache@v4 | |
| with: | |
| key: build-${{ github.sha }} | |
| path: ${{ env.BUILD-CACHE-LIST }} | |
| - name: Setup NPM credentials | |
| run: echo "//registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN" >> ~/.npmrc | |
| env: | |
| NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
| - name: Release Canary | |
| id: canary | |
| uses: 'kamilkisiela/release-canary@master' | |
| with: | |
| npm-token: ${{ secrets.NPM_TOKEN }} | |
| npm-script: 'yarn release:canary' | |
| changesets: true | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Publish a message | |
| if: steps.canary.outputs.released == 'true' | |
| uses: 'dotansimha/pr-comment@master' | |
| with: | |
| commentKey: canary | |
| message: | | |
| The latest changes of this PR are available as canary in npm (based on the declared `changesets`): | |
| ``` | |
| ${{ steps.canary.outputs.changesetsPublishedPackages}} | |
| ``` | |
| bot-token: ${{ secrets.GITHUB_TOKEN }} | |
| bot: 'github-actions[bot]' | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Publish an empty message | |
| if: steps.canary.outputs.released == 'false' | |
| uses: 'dotansimha/pr-comment@master' | |
| with: | |
| commentKey: canary | |
| message: | | |
| The latest changes of this PR are not available as canary, since there are no linked `changesets` for this PR. | |
| bot-token: ${{ secrets.GITHUB_TOKEN }} | |
| bot: 'github-actions[bot]' | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| license-check: | |
| name: Check Licenses | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version-file: '.node-version' | |
| cache: yarn | |
| - run: yarn install --immutable | |
| - name: License Check | |
| run: yarn license-check | |
| env: | |
| BUILD-CACHE-LIST: | | |
| packages/**/dist/**/* | |
| packages/**/cjs/**/* | |
| packages/**/esm/**/* | |
| packages/**/types/**/* | |
| packages/codemirror-graphql/*.js* | |
| packages/codemirror-graphql/*.d.ts | |
| packages/codemirror-graphql/cm6-legacy/**/* | |
| packages/codemirror-graphql/results/**/* | |
| packages/codemirror-graphql/variables/**/* | |
| packages/codemirror-graphql/utils/**/* | |
| !**/node_modules |