name: CI on: pull_request: pull_request_review: types: [submitted, edited] branches: changeset-release/main jobs: check: name: Checks runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: Checkout Repo uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup Node uses: actions/setup-node@v4 with: node-version: 18 - name: Setup pnpm uses: pnpm/action-setup@v3 with: version: 9 run_install: false - name: Get pnpm store directory id: pnpm-store run: echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT - name: Use pnpm store uses: actions/cache@v4 id: pnpm-cache with: path: | ~/.cache/Cypress ${{ steps.pnpm-store.outputs.pnpm_cache_dir }} key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm- - name: Install Dependencies run: pnpm install --frozen-lockfile --prefer-offline - name: TypeScript run: pnpm run check - name: Linting run: pnpm run lint - name: Unit Tests run: pnpm run test - name: Check for slow types run: pnpm jsr:dryrun react-e2e: name: React E2E runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: Checkout Repo uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup Node uses: actions/setup-node@v4 with: node-version: 18 - name: Setup pnpm uses: pnpm/action-setup@v3 with: version: 9 run_install: false - name: Get pnpm store directory id: pnpm-store run: echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT - name: Use pnpm store uses: actions/cache@v4 id: pnpm-cache with: path: | ~/.cache/Cypress ${{ steps.pnpm-store.outputs.pnpm_cache_dir }} key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm- - name: Install Dependencies run: pnpm install --frozen-lockfile --prefer-offline - name: Build run: pnpm -F @urql/core build && pnpm -F urql build - name: e2e tests 🧪 uses: cypress-io/github-action@v6 with: install: false command: pnpm cypress run --component working-directory: packages/react-urql graphcache-e2e: name: Graphcache E2E runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: Checkout Repo uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup Node uses: actions/setup-node@v4 with: node-version: 18 - name: Setup pnpm uses: pnpm/action-setup@v3 with: version: 9 run_install: false - name: Get pnpm store directory id: pnpm-store run: echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT - name: Use pnpm store uses: actions/cache@v4 id: pnpm-cache with: path: | ~/.cache/Cypress ${{ steps.pnpm-store.outputs.pnpm_cache_dir }} key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm- - name: Install Dependencies run: pnpm install --frozen-lockfile --prefer-offline - name: Build run: pnpm -F "@urql/core" -F urql -F "@urql/exchange-execute" build - name: e2e tests 🧪 uses: cypress-io/github-action@v6 with: install: false command: pnpm cypress run --component working-directory: exchanges/graphcache build: name: Build runs-on: ubuntu-latest timeout-minutes: 10 strategy: matrix: node: [0, 1, 2] env: NODE_TOTAL: 3 NODE_INDEX: ${{matrix.node}} steps: - name: Checkout Repo uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup Node uses: actions/setup-node@v4 with: node-version: 18 - name: Setup pnpm uses: pnpm/action-setup@v3 with: version: 9 run_install: false - name: Get pnpm store directory id: pnpm-store run: echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT - name: Use pnpm store uses: actions/cache@v4 id: pnpm-cache with: path: | ~/.cache/Cypress ${{ steps.pnpm-store.outputs.pnpm_cache_dir }} key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm- - name: Install Dependencies run: pnpm install --frozen-lockfile --prefer-offline - name: Build run: pnpm build - name: Pack uses: ./.github/actions/pnpm-run with: command: pack