-
Notifications
You must be signed in to change notification settings - Fork 1
57 lines (46 loc) · 1.94 KB
/
Copy pathci.yml
File metadata and controls
57 lines (46 loc) · 1.94 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
# FableLayer CI — push/PR 시 테스트 + 게이트 자동 검증 (L7 자동화)
#
# 이 워크플로우는 검증만 수행한다. 외부 push/배포/공개 등록은 절대 하지 않는다.
# - GitHub repo push, Vercel deploy, /plugin marketplace 공개 등록 등 외부 작업은
# FL15 승인 게이트 뒤에서 사용자 명시 승인 후에만 진행한다.
# - 이 파일 자체도 생성만 했을 뿐 실제 push/실행은 사용자 승인 전까지 하지 않는다.
#
# stdlib only(외부 의존 0)이므로 pip install 단계가 없다.
name: CI
on:
push:
branches: ["**"]
pull_request:
# 권한 최소화: 코드 읽기만. 외부 쓰기 작업 금지.
permissions:
contents: read
jobs:
verify:
name: tests + gates (py${{ matrix.python-version }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13"]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Python version
run: python3 --version
# (1) 단위/통합 테스트 단일 진입점 — 하나라도 실패 시 exit 1
- name: Run tests
run: python3 tests/run_tests.py
# (1.5) 공개 주장 검증 — version/plugin refs/public hygiene claims.
- name: Verify public claims
run: python3 proof/verify_claims.py .
# (2) 게이트 셀프테스트 — fixtures 기반 exit code 검증
- name: Gate selftest
run: bash gates/selftest.sh
# (3) 마스터 게이트 — OR집계, fail-closed. 하나라도 실패 시 비0
# CI 러너에는 ~/fable-forge 의존이 없으므로 FL8 lint는 WARN으로 스킵된다(차단 아님).
- name: Master verify (mode=new)
run: bash gates/verify_fablelayer.sh . --mode new