Skip to content

feat(web): redesign the workspace GitHub comment settings page (#666) #1401

feat(web): redesign the workspace GitHub comment settings page (#666)

feat(web): redesign the workspace GitHub comment settings page (#666) #1401

Workflow file for this run

name: CI
on:
pull_request:
branches: [main]
paths-ignore:
- "docs/**"
- "*.md"
- "LICENSE"
push:
branches: [main]
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
permissions:
contents: read
jobs:
lint:
name: Lint & Format
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version-file: .nvmrc
cache: pnpm
- run: pnpm install --frozen-lockfile
# Generates gitignored worker-configuration.d.ts for api, mcp, and web.
# Type-aware oxlint needs these (Env, ExportedHandler, bindings).
- name: Generate Wrangler types
run: pnpm types
# apps/mcp imports @buildinternet/uploads from its built dist; type-aware
# oxlint needs the package built to resolve those modules.
- name: Build workspace packages
run: pnpm --filter @buildinternet/uploads run build
# tsc --noEmit across every workspace. Type-aware oxlint below is not a
# substitute — it doesn't run the compiler. CONTRIBUTING.md documents
# this as part of the CI gate.
- name: Typecheck
run: pnpm typecheck
- name: Oxlint
run: pnpm lint
- name: Oxfmt
run: pnpm format:check
# Two ways a changeset can break the Release workflow after merge, both
# rejected here: naming a package outside the workspace (hard failure), and
# naming an ignored package, which yields an empty version PR and silently
# blocks the npm publish. Static by design — `changeset status` covers only
# the first and needs git history this shallow checkout does not have.
- name: Changeset lint
run: pnpm changeset:lint
test:
name: Test
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version-file: .nvmrc
cache: pnpm
- run: pnpm install --frozen-lockfile
- name: Generate Wrangler types
run: pnpm types
# Single-process Vitest across every workspace project (see vitest.projects.ts).
# The root `pretest` builds @buildinternet/uploads first — apps/mcp imports
# it from dist. Replaces the former serial `pnpm --filter … test` chain and
# adds apps/web, packages/email, and packages/errors to CI coverage.
- name: Run tests
run: pnpm test
- name: Verify npm package
run: pnpm --filter @buildinternet/uploads run build && pnpm --filter @buildinternet/uploads run pack:check
- name: Bundle remote MCP Worker
run: pnpm --filter @uploads/mcp run bundle:check