Skip to content

Commit 7a852b7

Browse files
bluedbirdclaude
andcommitted
chore: add GitHub Actions CI workflow
Runs lint, typecheck, test in parallel, then build on success. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 145631c commit 7a852b7

1 file changed

Lines changed: 76 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
concurrency:
10+
group: ci-${{ github.ref }}
11+
cancel-in-progress: true
12+
13+
jobs:
14+
lint:
15+
name: Lint
16+
runs-on: ubuntu-latest
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- uses: oven-sh/setup-bun@v2
21+
with:
22+
bun-version: latest
23+
24+
- run: bun install --frozen-lockfile
25+
26+
- name: Biome check
27+
run: bun run lint
28+
29+
typecheck:
30+
name: Type Check
31+
runs-on: ubuntu-latest
32+
steps:
33+
- uses: actions/checkout@v4
34+
35+
- uses: oven-sh/setup-bun@v2
36+
with:
37+
bun-version: latest
38+
39+
- run: bun install --frozen-lockfile
40+
41+
- name: TypeScript
42+
run: bun tsc --noEmit
43+
44+
test:
45+
name: Test
46+
runs-on: ubuntu-latest
47+
steps:
48+
- uses: actions/checkout@v4
49+
50+
- uses: oven-sh/setup-bun@v2
51+
with:
52+
bun-version: latest
53+
54+
- run: bun install --frozen-lockfile
55+
56+
- name: Run tests
57+
run: bun test
58+
59+
build:
60+
name: Build
61+
runs-on: ubuntu-latest
62+
needs: [lint, typecheck, test]
63+
steps:
64+
- uses: actions/checkout@v4
65+
66+
- uses: oven-sh/setup-bun@v2
67+
with:
68+
bun-version: latest
69+
70+
- run: bun install --frozen-lockfile
71+
72+
- name: Build server
73+
run: bun build apps/server/src/index.ts --outdir dist/server --target bun
74+
75+
- name: Build CLI
76+
run: bun build apps/cli/src/index.ts --outdir dist/cli --target bun

0 commit comments

Comments
 (0)