Migrate type tests to Vitest #135
Workflow file for this run
This file contains 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: CI | |
on: | |
push: | |
branches: [master] | |
pull_request: | |
branches: [master] | |
jobs: | |
build: | |
name: Lint, Test, Build & Pack on Node ${{ matrix.node }} | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node: ['20.x'] | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Use Node ${{ matrix.node }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
cache: 'yarn' | |
- name: Install deps | |
run: yarn install | |
# Read existing version, reuse that, add a Git short hash | |
- name: Set build version to Git commit | |
run: node scripts/writeGitVersion.mjs $(git rev-parse --short HEAD) | |
- name: Check updated version | |
run: jq .version package.json | |
- name: Run linter | |
run: yarn lint | |
- name: Pack | |
run: yarn pack | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: package | |
path: ./package.tgz | |
test-dist: | |
name: Test against dist | |
needs: [build] | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
node: ['20.x'] | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Use node ${{ matrix.node }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
cache: 'yarn' | |
- name: Install deps | |
run: yarn install | |
- uses: actions/download-artifact@v4 | |
with: | |
name: package | |
path: . | |
- run: ls -lah | |
- name: Install build artifact | |
run: yarn add ./package.tgz | |
- run: sed -i -e /@remap-prod-remove-line/d ./tsconfig.base.json ./vitest.config.mts | |
- name: Run tests, against dist | |
run: yarn test | |
test-types: | |
name: Test Types with TypeScript ${{ matrix.ts }} | |
needs: [build] | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
node: ['20.x'] | |
ts: ['4.7', '4.8', '4.9', '5.0', '5.1', '5.2', '5.3', '5.4'] | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Use node ${{ matrix.node }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
cache: 'yarn' | |
- name: Install deps | |
run: yarn install | |
- name: Install TypeScript ${{ matrix.ts }} | |
run: yarn add typescript@${{ matrix.ts }} | |
- name: Test types | |
run: | | |
yarn tsc --version | |
yarn type-tests | |
test-published-artifact: | |
name: Test Published Artifact ${{ matrix.example }} | |
needs: [build] | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
node: ['20.x'] | |
example: | |
[ | |
'cra4', | |
'cra5', | |
'next', | |
'vite', | |
'node-standard', | |
'node-esm', | |
'react-native', | |
'expo' | |
] | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Use node ${{ matrix.node }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
cache: 'yarn' | |
- name: Clone RTK repo | |
run: git clone https://github.com/reduxjs/redux-toolkit.git ./redux-toolkit | |
- name: Cache example deps | |
uses: actions/cache@v4 | |
with: | |
path: ./redux-toolkit/examples/publish-ci/${{ matrix.example }}/node_modules | |
key: test-published-artifact-${{ matrix.example }}-node_modules | |
- name: Check folder contents | |
run: ls -l . | |
- name: Install deps | |
working-directory: ./redux-toolkit/examples/publish-ci/${{ matrix.example }} | |
env: | |
YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
run: yarn install | |
- uses: actions/download-artifact@v4 | |
with: | |
name: package | |
path: ./redux-toolkit/examples/publish-ci/${{ matrix.example }} | |
- name: Check folder contents | |
working-directory: ./redux-toolkit/examples/publish-ci/${{ matrix.example }} | |
run: ls -l . | |
- name: Install Redux-Thunk build artifact | |
working-directory: ./redux-toolkit/examples/publish-ci/${{ matrix.example }} | |
run: yarn add ./package.tgz | |
- name: Show installed package versions | |
working-directory: ./redux-toolkit/examples/publish-ci/${{ matrix.example }} | |
run: yarn info redux-thunk && yarn why redux-thunk | |
- name: Build example | |
working-directory: ./redux-toolkit/examples/publish-ci/${{ matrix.example }} | |
env: | |
NODE_OPTIONS: --openssl-legacy-provider | |
run: yarn build | |
- name: Run test step | |
working-directory: ./redux-toolkit/examples/publish-ci/${{ matrix.example }} | |
run: yarn test | |
are-the-types-wrong: | |
name: Check package config with are-the-types-wrong | |
needs: [build] | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
node: ['20.x'] | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: package | |
path: . | |
# Note: We currently expect "FalseCJS" failures for Node16 + `moduleResolution: "node16" | |
- name: Run are-the-types-wrong | |
run: npx @arethetypeswrong/cli ./package.tgz --format table --ignore-rules false-cjs |