-
Notifications
You must be signed in to change notification settings - Fork 0
52 lines (46 loc) · 2.37 KB
/
Copy pathci.yml
File metadata and controls
52 lines (46 loc) · 2.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# 이 레포의 검증 명령 8개를 한 번에 돌린다. 여기서는 굽지 않는다 — 패키징·서명·공증·릴리스는
# `release.yml`이 macOS 러너에서 한다(docs/DESIGN.md §CI C3). 둘은 서로를 기다리지 않고,
# 그래서 release.yml이 테스트를 자기 잡 안에서 다시 돌린다.
# 큐(`.dira/`)는 gitignore돼 있어 체크아웃에 없다.
name: CI
# 브랜치 제한 없음 — 워커 브랜치 `wt/<워커>`가 6개 살아 있고 전부 봐야 한다.
on: [push, pull_request]
jobs:
# ponytail: 잡 하나에 8개를 다 넣는다. 잡을 쪼개면 checkout·setup이 3벌이 된다.
# 벽시계가 아프면 그때 디렉터리별로 쪼갠다.
check:
# macOS다. 이 레포는 macOS 전용이고 테스트가 그걸 그대로 쓴다 — pty로 `claude`를 몰고,
# crontab을 쓰고, 프롬프트를 FIFO로 민다. ubuntu에서는 그 셋이 다 다르게 굴러서 CI가
# **제품에 없는 플랫폼의 결함**을 찍었다(실측 2026-08-01: 파이프 버퍼 64KB · argv 128KB ·
# pty). release.yml과 러너가 같아지는 것도 값이다 — 여기 초록이 나갈 것에 대한 초록이다.
runs-on: macos-latest
steps:
- uses: actions/checkout@v7
# 엔진 — 의존성 0. ubuntu-latest의 python3를 그대로 쓴다.
- run: python3 test_generic.py
- run: python3 test_reap_manual.py
- run: python3 test_claim_race.py
- run: python3 test_feed_stall.py
- run: python3 test_inbox.py
# 루트에 package.json도 워크스페이스도 없다. apps/teams·apps/desktop은
# 각자 pnpm-lock.yaml을 가진 독립 프로젝트라 설치도 각각이다.
- uses: pnpm/action-setup@v6
with:
version: 11
- uses: actions/setup-node@v7
with:
node-version: 25
- run: pnpm install
working-directory: apps/teams
- run: pnpm lint
working-directory: apps/teams
- run: pnpm test
working-directory: apps/teams
- run: pnpm build
working-directory: apps/teams
# --ignore-scripts: 여기 테스트는 파일 하나뿐이고 electron을 임포트하지 않는다.
# postinstall의 electron 바이너리 내려받기를 건너뛴다.
- run: pnpm install --ignore-scripts
working-directory: apps/desktop
- run: pnpm test
working-directory: apps/desktop