Skip to content

Merge pull request #4892 from aryaemami59/chore/deps/update-types-node #1588

Merge pull request #4892 from aryaemami59/chore/deps/update-types-node

Merge pull request #4892 from aryaemami59/chore/deps/update-types-node #1588

Workflow file for this run

name: CI
on: [push, pull_request]
permissions:
contents: read
jobs:
changes:
name: Check for changes
runs-on: ubuntu-latest
outputs:
src: ${{ steps.filter.outputs.src }}
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
persist-credentials: false
- uses: dorny/paths-filter@d1c1ffe0248fe513906c8e24db8ea791d46f8590 # v3.0.3
id: filter
with:
filters: |
src:
- '.github/**'
- 'src/**'
- 'test/**'
- '.github/**/*.yaml'
- 'tsup.config.ts'
- 'yarn.lock'
build:
needs: changes
if: ${{ needs.changes.outputs.src == 'true' }}
name: Lint, Test, Build & Pack on Node ${{ matrix.node }}
runs-on: ubuntu-latest
strategy:
matrix:
node: ['24.x']
steps:
- name: Checkout repo
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
persist-credentials: false
- name: Use node ${{ matrix.node }}
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ matrix.node }}
cache: 'yarn'
- name: Install deps
run: yarn install --frozen-lockfile
- name: Lint
run: yarn lint
- name: Run test suite
run: yarn test
- name: Build
run: yarn build
- name: Pack
run: yarn pack
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: package
path: ./package.tgz
test-dist:
name: Test against dist
needs: [build]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node: ['24.x']
steps:
- name: Checkout repo
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
persist-credentials: false
- name: Use node ${{ matrix.node }}
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ matrix.node }}
cache: 'yarn'
- name: Install deps
run: yarn install --frozen-lockfile
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: package
path: .
- run: ls -lah
- name: Install build artifact
run: yarn add ./package.tgz
- name: Erase path aliases
run: sed -i -e /@remap-prod-remove-line/d tsconfig.base.json
- name: Run tests, against dist
env:
TEST_DIST: true
run: yarn test
test-types:
name: Test Types with TypeScript ${{ matrix.ts }}
needs: [build]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node: ['24.x']
ts: ['5.5', '5.6', '5.7', '5.8']
steps:
- name: Checkout repo
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
persist-credentials: false
- name: Use node ${{ matrix.node }}
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ matrix.node }}
cache: 'yarn'
- name: Install deps
run: yarn install --frozen-lockfile
- name: Install TypeScript ${{ matrix.ts }}
run: yarn add typescript@${{ matrix.ts }}
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: package
path: .
- name: Install build artifact
run: yarn add ./package.tgz
- name: Erase path aliases
run: sed -i -e /@remap-prod-remove-line/d tsconfig.base.json
- name: Test types
env:
TEST_DIST: true
run: |
yarn tsc --version
yarn type-tests
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: ['24.x']
steps:
- name: Checkout repo
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
persist-credentials: false
- name: Use node ${{ matrix.node }}
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ matrix.node }}
cache: 'yarn'
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: package
path: .
- name: Install dependencies
run: yarn install
# Note: We currently expect "FalseESM" failures for Node16 + `moduleResolution: "node16"
- name: Run are-the-types-wrong
run: yarn attw ./package.tgz --format table --ignore-rules false-esm
test-published-artifact:
name: Test Published Artifact ${{ matrix.example }}
needs: [build]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node: ['24.x']
example:
[
'cra4',
'cra5',
'next',
'vite',
'node-standard',
'node-esm',
'react-native',
'expo'
]
steps:
- name: Checkout repo
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
persist-credentials: false
- name: Use node ${{ matrix.node }}
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ matrix.node }}
cache: 'yarn'
- name: Clone RTK repo
run: |
git init ./redux-toolkit
git -C ./redux-toolkit fetch --depth 1 https://github.com/reduxjs/redux-toolkit.git 7c49510ff5dc6aad7cda24a59ec6c38a1af053be
git -C ./redux-toolkit checkout FETCH_HEAD
- name: Cache example deps
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
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
YARN_ENABLE_SCRIPTS: false
run: yarn install
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
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 redux && yarn why redux
- name: Build example
working-directory: ./redux-toolkit/examples/publish-ci/${{ matrix.example }}
env:
NODE_OPTIONS: --openssl-legacy-provider
run: yarn build
- name: playwright install
if: matrix.example == 'next' || matrix.example == 'vite' || matrix.example == 'cra4' || matrix.example == 'cra5'
working-directory: ./redux-toolkit/examples/publish-ci/${{ matrix.example }}
run: yarn exec playwright install --with-deps chromium
- name: Run test step
working-directory: ./redux-toolkit/examples/publish-ci/${{ matrix.example }}
run: yarn test