diff --git a/.github/workflows/ci.yml b/.github/workflows/e2e.yml similarity index 54% rename from .github/workflows/ci.yml rename to .github/workflows/e2e.yml index bbb1ddf4..8a6501e2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/e2e.yml @@ -1,7 +1,18 @@ -name: CI +name: E2E on: pull_request: + paths: + - "apps/hub/**" + - "packages/**" + - "workflows/**" + - "test/e2e/**" + - "vendor/**" + - "bun.lock" + - "patches/**" + - "package.json" + - "tsconfig.json" + - ".github/**" merge_group: push: branches: @@ -12,26 +23,10 @@ permissions: contents: read concurrency: - group: ci-${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }} + group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }} cancel-in-progress: ${{ github.event_name != 'push' }} jobs: - check: - name: ${{ matrix.script }} - runs-on: ubuntu-24.04 - timeout-minutes: 20 - strategy: - fail-fast: false - matrix: - script: - [format:check, lint, typecheck, test, vendor:verify, pins:verify] - steps: - - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - with: - persist-credentials: false - - uses: ./.github/actions/setup - - run: bun run ${{ matrix.script }} - e2e: runs-on: ubuntu-24.04 timeout-minutes: 20 diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml new file mode 100644 index 00000000..afa10198 --- /dev/null +++ b/.github/workflows/format.yml @@ -0,0 +1,28 @@ +name: Format + +on: + pull_request: + merge_group: + push: + branches: + - main + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }} + cancel-in-progress: ${{ github.event_name != 'push' }} + +jobs: + format-check: + name: format:check + runs-on: ubuntu-24.04 + timeout-minutes: 20 + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + - uses: ./.github/actions/setup + - run: bun run format:check diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 00000000..64bfb282 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,40 @@ +name: Lint + +on: + pull_request: + paths: + - "apps/**" + - "packages/**" + - "workflows/**" + - "test/**" + - "scripts/**" + - "vendor/**" + - ".oxlintrc.json" + - "bun.lock" + - "patches/**" + - "package.json" + - "tsconfig.json" + - ".github/**" + merge_group: + push: + branches: + - main + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }} + cancel-in-progress: ${{ github.event_name != 'push' }} + +jobs: + lint: + runs-on: ubuntu-24.04 + timeout-minutes: 20 + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + - uses: ./.github/actions/setup + - run: bun run lint diff --git a/.github/workflows/pins.yml b/.github/workflows/pins.yml new file mode 100644 index 00000000..38995c2c --- /dev/null +++ b/.github/workflows/pins.yml @@ -0,0 +1,36 @@ +name: Pins + +on: + pull_request: + paths: + - "**/package.json" + - "scripts/verify-pins.ts" + - "bun.lock" + - "patches/**" + - "package.json" + - "tsconfig.json" + - ".github/**" + merge_group: + push: + branches: + - main + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }} + cancel-in-progress: ${{ github.event_name != 'push' }} + +jobs: + pins-verify: + name: pins:verify + runs-on: ubuntu-24.04 + timeout-minutes: 20 + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + - uses: ./.github/actions/setup + - run: bun run pins:verify diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..0e336abd --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,38 @@ +name: Test + +on: + pull_request: + paths: + - "apps/**" + - "packages/**" + - "workflows/**" + - "test/integration/**" + - "vendor/**" + - "bun.lock" + - "patches/**" + - "package.json" + - "tsconfig.json" + - ".github/**" + merge_group: + push: + branches: + - main + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }} + cancel-in-progress: ${{ github.event_name != 'push' }} + +jobs: + test: + runs-on: ubuntu-24.04 + timeout-minutes: 20 + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + - uses: ./.github/actions/setup + - run: bun run test diff --git a/.github/workflows/typecheck.yml b/.github/workflows/typecheck.yml new file mode 100644 index 00000000..852763a3 --- /dev/null +++ b/.github/workflows/typecheck.yml @@ -0,0 +1,39 @@ +name: Typecheck + +on: + pull_request: + paths: + - "apps/**" + - "packages/**" + - "workflows/**" + - "test/**" + - "scripts/**" + - "vendor/**" + - "bun.lock" + - "patches/**" + - "package.json" + - "tsconfig.json" + - ".github/**" + merge_group: + push: + branches: + - main + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }} + cancel-in-progress: ${{ github.event_name != 'push' }} + +jobs: + typecheck: + runs-on: ubuntu-24.04 + timeout-minutes: 20 + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + - uses: ./.github/actions/setup + - run: bun run typecheck diff --git a/.github/workflows/vendor.yml b/.github/workflows/vendor.yml new file mode 100644 index 00000000..720ce01b --- /dev/null +++ b/.github/workflows/vendor.yml @@ -0,0 +1,36 @@ +name: Vendor + +on: + pull_request: + paths: + - "vendor/**" + - "scripts/verify-vendor.ts" + - "bun.lock" + - "patches/**" + - "package.json" + - "tsconfig.json" + - ".github/**" + merge_group: + push: + branches: + - main + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }} + cancel-in-progress: ${{ github.event_name != 'push' }} + +jobs: + vendor-verify: + name: vendor:verify + runs-on: ubuntu-24.04 + timeout-minutes: 20 + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + - uses: ./.github/actions/setup + - run: bun run vendor:verify diff --git a/README.md b/README.md index 792e3857..15e0170f 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

Builder

Turn a half-baked idea into a working application, without being a developer.

- CI + Tests

User manual ยท