types: make slices type-safe with (keyof S & string)[]
#11
This file contains hidden or 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: [main] | |
| pull_request: | |
| branches: [main] | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| typecheck: | |
| name: TypeScript Check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Prepare environment | |
| uses: ./.github/actions/prepare | |
| - name: TypeScript Check | |
| run: pnpm typecheck | |
| lint: | |
| name: Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Prepare environment | |
| uses: ./.github/actions/prepare | |
| - name: Lint (ESLint) | |
| run: pnpm lint | |
| test: | |
| name: Unit Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Prepare environment | |
| uses: ./.github/actions/prepare | |
| - name: Install Playwright browsers | |
| run: pnpm exec playwright install --with-deps chromium | |
| - name: Run Unit Tests | |
| run: pnpm test:run | |
| build: | |
| name: Build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Prepare environment | |
| uses: ./.github/actions/prepare | |
| - name: Build Package | |
| run: pnpm build | |
| e2e: | |
| name: E2E Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Prepare environment | |
| uses: ./.github/actions/prepare | |
| - name: Install Playwright browsers | |
| run: pnpm exec playwright install --with-deps chromium | |
| - name: Build redux-storage-middleware package | |
| run: pnpm build | |
| - name: Install gmail-clone dependencies | |
| run: pnpm install --ignore-workspace | |
| working-directory: examples/gmail-clone | |
| - name: Build gmail-clone example | |
| run: pnpm build | |
| working-directory: examples/gmail-clone | |
| - name: Run E2E Tests | |
| run: pnpm test:e2e | |
| working-directory: examples/gmail-clone | |
| - name: Upload Playwright Report | |
| uses: actions/upload-artifact@v4 | |
| if: ${{ !cancelled() }} | |
| with: | |
| name: playwright-report | |
| path: examples/gmail-clone/playwright-report/ | |
| retention-days: 7 |