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 testcloudflare/kumo
Publicmirrored from https://github.com/cloudflare/kumoAvailable
.github/workflows/pullrequest.yml
144lines · modepreview