-
Notifications
You must be signed in to change notification settings - Fork 0
99 lines (77 loc) · 3.36 KB
/
Copy pathci.yml
File metadata and controls
99 lines (77 loc) · 3.36 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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm lint
- run: pnpm typecheck
# OG 카드 PNG는 static/og/에 커밋되고 build:og가 frontmatter image: 선언
# 페이지 전수에 대해 생성한다. 페이지를 추가하면서 PNG 생성을 빠뜨리면
# OG 카드가 404가 된다(#107·#105·#108 → #112). check:og-images가 각
# image: 선언에 대응하는 PNG 존재를 검사해 누락이면 fail(로컬에서
# `pnpm build:og` 후 커밋하면 해소). byte-equality가 아니라 존재만 보는
# 이유는 스크립트 주석 참조 — satori 래스터화가 macOS↔Linux 비결정적이라
# diff 검사는 모든 PR에서 오탐. #112·#114 참조.
- run: pnpm check:og-images
# static/llms.txt(llmstxt.org 인덱스)는 build:llms가 docs/api/ + docs/guides/
# 전수에서 생성하고 커밋된다. 메서드·가이드 페이지를 추가하면서 llms.txt를
# 재생성·커밋하지 않으면 인덱스가 stale해진다(#107에서 추가된 메서드가
# 빠진 채로 drift). OG와 달리 llms.txt는 결정적 텍스트라(satori 같은
# 플랫폼 비결정성 없음) byte-diff가 유효한 가드다 — check:llms가
# build:llms 후 git diff로 drift를 잡는다(로컬에서 `pnpm build:llms` 후
# 커밋하면 해소). #118 참조. 반드시 build 앞에 둔다 — build의 prebuild가
# llms.txt를 재생성해 drift를 가려버리므로.
- run: pnpm check:llms
- run: pnpm build
# Verifies that docs/api/<group>/<method>.mdx names line up 1:1 with the
# ApiCard `name="..."` props in apps-in-toss-community/sdk-example. Kept as a
# separate job so the name (`verify-crosslinks`) stays stable for branch
# protection required checks. `--strict` mode treats sdk-example methods not
# yet in docs as errors and fetch failures as hard failures — both must be
# clean before merging. Gaps should be resolved by adding the missing page,
# not by relaxing the flag.
verify-crosslinks:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm verify:crosslinks --strict
# Dry-run SDK coverage drift check. Non-blocking on PRs — the weekly
# `sdk-drift` workflow is the enforcement layer (opens/updates a tracking
# issue). Surfacing it here gives early feedback when a PR bumps the SDK
# devDependency or removes a documented method.
coverage-check:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v6
- uses: actions/setup-node@v6
with:
node-version-file: '.nvmrc'
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm coverage:check