From f0324a1fdf8a05582e76afa4c90a0f4db7ab1cb2 Mon Sep 17 00:00:00 2001 From: Mark Erikson Date: Sat, 30 Sep 2023 21:47:23 -0400 Subject: [PATCH] Copy CI setup for RTK examples --- .github/workflows/test.yml | 100 +++++++++++++++++++++++++++++++++++-- 1 file changed, 97 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c440d0e17..c48862146 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,9 +2,9 @@ name: Tests on: push: - branches: [master, typescript-port] + branches: [master, v9.0-integration] pull_request: - branches: [master, typescript-port] + branches: [master, v9.0-integration] workflow_dispatch: jobs: @@ -51,7 +51,7 @@ jobs: fail-fast: false matrix: node: ['16.x'] - ts: ['4.7', '4.8', '4.9', '5.0'] + ts: ['4.7', '4.8', '4.9', '5.0', '5.1', '5.2'] steps: - name: Checkout repo uses: actions/checkout@v3 @@ -73,6 +73,100 @@ jobs: 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: ['16.x'] + steps: + - name: Checkout repo + uses: actions/checkout@v3 + + - uses: actions/download-artifact@v3 + with: + name: package + path: . + + # Note: We currently expect "FalseCJS" failures for Node16 + `moduleResolution: "node16", + # and the `/alternateRenderers" entry point will not resolve under Node10. + # Skipping these is dangerous, but we'll leave it for now. + - name: Run are-the-types-wrong + run: npx @arethetypeswrong/cli ./package.tgz --format table --ignore-rules false-cjs no-resolution + + test-published-artifact: + name: Test Published Artifact ${{ matrix.example }} + + needs: [build] + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + node: ['16.x'] + example: ['cra4', 'cra5', 'next', 'vite', 'node-standard', 'node-esm'] + steps: + - name: Checkout repo + uses: actions/checkout@v4 + + - name: Use node ${{ matrix.node }} + uses: actions/setup-node@v3.8.1 + with: + node-version: ${{ matrix.node }} + 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 . + + # Some weird install diffs with cloning this repo and installing. + # Just kill the lockfiles for React-Redux and RTK and reinstall + + - name: Remove React-Redux lockfile + run: rm yarn.lock && rm package.json + + - name: Remove RTK lockfile + working-directory: ./redux-toolkit + run: rm yarn.lock && rm package.json + + - name: Install deps + working-directory: ./redux-toolkit/examples/publish-ci/${{ matrix.example }} + run: rm yarn.lock && YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn install && YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn add msw@latest + + - name: Install Playwright browser if necessary + working-directory: ./redux-toolkit/examples/publish-ci/${{ matrix.example }} + continue-on-error: true + run: yarn playwright 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 react-redux && yarn why react-redux + + - 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 + test-published-artifact-local: name: Test Published Artifact (Local) ${{ matrix.example }}