- pnpm+turbo workspace, tsconfig base, .npmrc(Gitea 레지스트리) - 7 패키지 스텁(ds-sdk 리프 → ui/api-client type-only → client-shell/bff-kit; backup-core 신규) package.json 의존으로 DAG·역의존 금지 규칙 강제 - Apache-2.0 LICENSE + NOTICE/LOGO_ATTRIBUTION(벤더 상표 로고 미번들, URL-only) - .gitea/workflows/ci.yml(build/typecheck/lint · bind-env-drift · secret-scan · standalone-smoke) - scripts: bind-env-check(check-only 게이트) · standalone-smoke(lazy-require 불변식) 스켈레톤 - apps/ds-web standalone 데모 스텁 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
52 lines
1.7 KiB
YAML
52 lines
1.7 KiB
YAML
name: ci
|
|
on: [push, pull_request]
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: pnpm/action-setup@v4
|
|
with: { version: 9 }
|
|
- uses: actions/setup-node@v4
|
|
with: { node-version: 20, cache: pnpm }
|
|
- run: pnpm install --frozen-lockfile
|
|
- run: pnpm build
|
|
- run: pnpm typecheck
|
|
- run: pnpm lint
|
|
- run: pnpm test
|
|
|
|
bind-env-drift:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
# SSOT 게이트: ds-sdk bind-env.json ↔ private-cluster infra/api/yakcloud_api.py _bind_env_for()
|
|
# 리포 경계: 대상 Python 을 sparse-checkout(읽기전용 토큰)해 .infra-ref/ 로 가져온다.
|
|
- name: fetch infra ref (sparse)
|
|
run: |
|
|
echo "TODO: sparse-checkout private-cluster infra/api/yakcloud_api.py -> .infra-ref/"
|
|
- uses: pnpm/action-setup@v4
|
|
with: { version: 9 }
|
|
- uses: actions/setup-node@v4
|
|
with: { node-version: 20 }
|
|
- run: node scripts/bind-env-check.mjs --python .infra-ref/infra/api/yakcloud_api.py
|
|
|
|
secret-scan:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with: { fetch-depth: 0 }
|
|
- name: gitleaks
|
|
run: echo "TODO: gitleaks detect --no-git=false"
|
|
|
|
standalone-smoke:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: pnpm/action-setup@v4
|
|
with: { version: 9 }
|
|
- uses: actions/setup-node@v4
|
|
with: { node-version: 20 }
|
|
- run: pnpm install --frozen-lockfile
|
|
# #9 불변식: 무DB·무Keycloak 환경에서 클라 패키지 import 시 서버전용 모듈(Prisma/next-auth) 정적 유출 0
|
|
- run: node scripts/standalone-smoke.mjs
|