Skip to content

Tidy up dependencies #18938

Tidy up dependencies

Tidy up dependencies #18938

Workflow file for this run

name: Testing
on:
push:
branches:
- master
pull_request:
branches:
- master
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
NODE_OPTIONS: '--max_old_space_size=4096'
CARGO_TERM_COLOR: always
jobs:
lint:
name: Linting Check
uses: the-guild-org/shared-config/.github/workflows/lint.yml@f4eea983237a44bb0ca19c3348dacbfdfcdbec23 # main
with:
script: pnpm ci:lint
packageManager: pnpm
secrets:
githubToken: ${{ secrets.GITHUB_TOKEN }}
prettier-check:
name: 🧹 Prettier Check
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Install pnpm
uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
with:
standalone: true
cache: true
- name: Install Node
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: 24
- name: Install packages
run: pnpm install
- name: Prettier Check
run: pnpm prettier:check
dev-tests-old:
name: Validating dev-tests
runs-on: ubuntu-latest
strategy:
matrix:
method:
- 'cjs'
- 'esm'
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Install pnpm
uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
with:
standalone: true
cache: true
- name: Install Node
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: 24
- name: Install packages
run: pnpm install
- name: Build
run: pnpm build
env:
CI: true
- name: Test dev-tests ${{matrix.method}}
run: |
pnpm run generate:examples:${{matrix.method}}
git diff --exit-code -- dev-test/
dev-tests:
name: Examples - Normal
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Install pnpm
uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
with:
standalone: true
cache: true
- name: Install Node
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: 24
- name: Install packages
# `side-effects-cache false` is set to avoid using pnpm cache for binary cache like Cypress'
run: |
pnpm config set side-effects-cache false --location project
pnpm i
- name: Build
run: pnpm build
env:
CI: true
- name: Generate and Diff Codegen Artifacts
run: |
EXAMPLE_TYPE=normal pnpm examples:codegen
git diff --exit-code -- examples/
- name: Build Examples
run: |
EXAMPLE_TYPE=normal pnpm examples:build
- name: End2End Test Examples
run: |
EXAMPLE_TYPE=normal pnpm examples:test:end2end
# TODO: Remove all SWC test setup and references as that has been moved to https://github.com/swc-project/plugins/tree/main/contrib/graphql-codegen-client-preset
# dev-tests-swc:
# name: Examples - SWC
# runs-on: ubuntu-latest
# steps:
# - name: Checkout
# uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
# - name: Setup env
# uses: the-guild-org/shared-config/setup@main
# - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # v1
# with:
# toolchain: 1.65.0
# target: wasm32-wasi
# override: true
# - name: Build SWC plugin
# working-directory: ./packages/presets/swc-plugin
# run: |
# npm run build-wasm
# - name: Build
# run: yarn build
# env:
# CI: true
# - name: Generate and Diff Codegen Artifacts
# run: |
# EXAMPLE_TYPE=swc yarn examples:codegen
# git diff --exit-code -- examples/
# - name: Build Examples
# run: |
# EXAMPLE_TYPE=swc yarn examples:build
# - name: End2End Test Examples
# run: |
# EXAMPLE_TYPE=swc yarn examples:test:end2end
esm:
name: Testing exports integrity
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Install pnpm
uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
with:
standalone: true
cache: true
- name: Install Node
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: 24
- name: Install packages
run: pnpm i
- name: Build
run: pnpm build
env:
CI: true
- name: Test ESM & CJS integrity
run: pnpm bob check
test:
name:
Unit Test on Node ${{matrix.node_version}} (${{matrix.os}}) and GraphQL
v${{matrix.graphql_version}}
runs-on: ubuntu-latest
needs:
- lint
- prettier-check
- esm
strategy:
matrix:
os: [ubuntu-latest] # remove windows to speed up the tests
node_version: [22, 24]
graphql_version: [15, 16]
include:
- node-version: 22
os: windows-latest
graphql_version: 16
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Install pnpm
uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
with:
standalone: true
cache: true
- name: Install Node
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: ${{matrix.node_version}}
- name: Install Dependencies to match graphql version
run: pnpm i
- name: Use GraphQL v${{matrix.graphql_version}}
run: node ./scripts/match-graphql.js ${{matrix.graphql_version}}
- name: Install Dependencies
run: pnpm i --no-frozen-lockfile # no frozen-lockfile because `graphql` version is changed
- name: Build
run: pnpm build
- name: Test
# FIXME: Do not test `watcher.run.spec.ts` here because it is currently not working for Node22+ in Ubuntu
run: pnpm test --exclude="**/tests/watcher.run.spec.ts"
env:
CI: true
test-watcher:
name:
Watcher Unit Test on Node ${{matrix.node_version}} (${{matrix.os}}) and GraphQL
v${{matrix.graphql_version}}
runs-on: ubuntu-latest
needs:
- lint
- prettier-check
- esm
strategy:
matrix:
os: [ubuntu-latest] # remove windows to speed up the tests
node_version: [20]
graphql_version: [15, 16]
include:
- node-version: 20
os: windows-latest
graphql_version: 16
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Install pnpm
uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
with:
standalone: true
cache: true
- name: Install Node
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: ${{matrix.node_version}}
- name: Install Dependencies to match graphql version
run: pnpm i
- name: Use GraphQL v${{matrix.graphql_version}}
run: node ./scripts/match-graphql.js ${{matrix.graphql_version}}
- name: Install Dependencies
run: pnpm i --no-frozen-lockfile # no frozen-lockfile because `graphql` version is changed
- name: Build
run: pnpm build
- name: Test
# FIXME: Merge `watcher.run.spec.ts` test to the above when it works for Node22+ in Ubuntu
run: pnpm test packages/graphql-codegen-cli/tests/watcher.run.spec.ts
env:
CI: true
# TODO: Remove all SWC test setup and references as that has been moved to https://github.com/swc-project/plugins/tree/main/contrib/graphql-codegen-client-preset
# test-rust-swc-plugin:
# name: Build and Unit Test SWC Plugin
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
# - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # v1
# with:
# toolchain: 1.65.0
# target: wasm32-wasi
# override: true
# - uses: marcopolo/cargo@a527bf4d534717ff4424a84446c5d710f8833139
# with:
# working-directory: ./packages/presets/swc-plugin
# command: build
# args: --target wasm32-wasi
# - uses: marcopolo/cargo@a527bf4d534717ff4424a84446c5d710f8833139
# with:
# working-directory: ./packages/presets/swc-plugin
# command: test