cloudflare/kumo

Public

mirrored from https://github.com/cloudflare/kumoAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
main

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

.github/workflows/pullrequest.yml

144lines · modepreview

name: Pull Request

on:
  pull_request:
    paths-ignore:
      - "*.md"
      - ".changeset/**"

permissions:
  contents: read

concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
  cancel-in-progress: true

jobs:
  changeset:
    timeout-minutes: 2
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: ./.github/actions/install-dependencies
      - run: pnpm tsx ci/scripts/validate-kumo-changeset.ts

  build:
    timeout-minutes: 5
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 1
      - uses: ./.github/actions/install-dependencies
      - run: pnpm --filter @cloudflare/kumo build
      - uses: actions/upload-artifact@v4
        with:
          name: kumo-dist
          path: packages/kumo/dist
          retention-days: 1
      - uses: actions/upload-artifact@v4
        with:
          name: kumo-ai
          path: packages/kumo/ai
          retention-days: 1

  lint:
    needs: build
    timeout-minutes: 5
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 1
      - uses: ./.github/actions/install-dependencies
      - uses: actions/download-artifact@v4
        with:
          name: kumo-dist
          path: packages/kumo/dist
      - uses: actions/download-artifact@v4
        with:
          name: kumo-ai
          path: packages/kumo/ai
      - run: pnpm lint

  typecheck:
    needs: build
    timeout-minutes: 5
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 1
      - uses: ./.github/actions/install-dependencies
      - uses: actions/download-artifact@v4
        with:
          name: kumo-dist
          path: packages/kumo/dist
      - uses: actions/download-artifact@v4
        with:
          name: kumo-ai
          path: packages/kumo/ai
      - run: pnpm typecheck

  test:
    needs: build
    timeout-minutes: 5
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 1
      - uses: ./.github/actions/install-dependencies
      - uses: actions/download-artifact@v4
        with:
          name: kumo-dist
          path: packages/kumo/dist
      - uses: actions/download-artifact@v4
        with:
          name: kumo-ai
          path: packages/kumo/ai
      - run: pnpm --filter @cloudflare/kumo test

  test-react-compatibility:
    needs: build
    timeout-minutes: 5
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        include:
          - react-version: "18.3.1"
            types-react-version: "18.3.12"
            types-react-dom-version: "18.3.1"
          - react-version: "19.2.0"
            types-react-version: "19.2.4"
            types-react-dom-version: "19.2.3"
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 1
      - uses: ./.github/actions/install-dependencies
      - name: Install React ${{ matrix.react-version }} test dependencies
        run: |
          pnpm pkg set \
            "pnpm.overrides.react=${{ matrix.react-version }}" \
            "pnpm.overrides.react-dom=${{ matrix.react-version }}" \
            "pnpm.overrides.@types/react=${{ matrix.types-react-version }}" \
            "pnpm.overrides.@types/react-dom=${{ matrix.types-react-dom-version }}"
          pnpm install --no-frozen-lockfile --ignore-scripts --filter "@cloudflare/kumo..."
      - uses: actions/download-artifact@v4
        with:
          name: kumo-dist
          path: packages/kumo/dist
      - uses: actions/download-artifact@v4
        with:
          name: kumo-ai
          path: packages/kumo/ai
      - name: Verify React test versions
        run: |
          pnpm --filter @cloudflare/kumo exec node -e "if (require('react/package.json').version !== '${{ matrix.react-version }}') process.exit(1)"
          pnpm --filter @cloudflare/kumo exec node -e "if (require('react-dom/package.json').version !== '${{ matrix.react-version }}') process.exit(1)"
      - run: pnpm --filter @cloudflare/kumo typecheck
      - run: pnpm --filter @cloudflare/kumo test