Use default Node version in CI #175
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, Report Coverage on Node | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Set up Node | |
uses: actions/setup-node@v2 | |
with: | |
cache: 'yarn' | |
- name: Install dependencies | |
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: Run tests | |
run: yarn test | |
- name: Pack | |
run: yarn pack | |
- uses: actions/upload-artifact@v2 | |
with: | |
name: package | |
path: ./package.tgz | |
test-types: | |
name: Test Types with TypeScript ${{ matrix.ts }} | |
needs: [build] | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
ts: ['4.2', '4.3', '4.4', '4.5', '4.6', '4.7', '4.8', '4.9', '5.0'] | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v2 | |
- name: Use node | |
uses: actions/setup-node@v2 | |
with: | |
cache: 'yarn' | |
- name: Install deps | |
run: yarn install | |
# Build with the actual TS version in the repo | |
- name: Pack | |
run: yarn build && yarn pack | |
- name: Install build artifact | |
run: yarn add ./package.tgz | |
# Then install the specific version to test against | |
- name: Install TypeScript ${{ matrix.ts }} | |
run: yarn add --dev typescript@${{ matrix.ts }} | |
- name: 'Remove source to ensure packaged types are used' | |
run: rm -rf src | |
# Remove config line that points "reselect" to the `src` folder, | |
# so that the typetest will use the installed version instead | |
- run: sed -i -e /@remap-prod-remove-line/d ./typescript_test/tsconfig.json vitest.config.ts | |
- name: Test types | |
run: | | |
./node_modules/.bin/tsc --version | |
yarn test:typescript | |
test-published-artifact: | |
name: Test Published Artifact ${{ matrix.example }} | |
needs: [build] | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
example: | |
[ | |
'cra4', | |
'cra5', | |
'next', | |
'vite', | |
'node-standard', | |
'node-esm', | |
'are-the-types-wrong' | |
] | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v2 | |
- name: Use node | |
uses: actions/setup-node@v2 | |
with: | |
cache: 'yarn' | |
- name: Clone RTK repo | |
run: git clone https://github.com/reduxjs/redux-toolkit.git ./redux-toolkit | |
- name: Check folder contents | |
run: ls -l . | |
- name: Install deps | |
working-directory: ./redux-toolkit/examples/publish-ci/${{ matrix.example }} | |
run: yarn install | |
- uses: actions/download-artifact@v2 | |
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 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 reselect && yarn why reselect | |
- name: Build example | |
working-directory: ./redux-toolkit/examples/publish-ci/${{ matrix.example }} | |
run: yarn build | |
- name: Run test step | |
working-directory: ./redux-toolkit/examples/publish-ci/${{ matrix.example }} | |
run: yarn test | |
if: matrix.example != 'are-the-types-wrong' | |
- name: Run test step (attw) | |
working-directory: ./redux-toolkit/examples/publish-ci/${{ matrix.example }} | |
# Ignore "FalseCJS" errors in the `attw` job | |
run: yarn test -n FalseCJS | |
if: matrix.example == 'are-the-types-wrong' |