-
Notifications
You must be signed in to change notification settings - Fork 1
129 lines (101 loc) · 3.63 KB
/
Copy pathci.yml
File metadata and controls
129 lines (101 loc) · 3.63 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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
quality:
name: Quality Checks — @tds-tchad/core
runs-on: ubuntu-latest
timeout-minutes: 15
defaults:
run:
working-directory: packages/core
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install devDependencies (TypeScript)
run: npm install --ignore-scripts
working-directory: packages/core
# ── Type safety ────────────────────────────────────────────
- name: Typecheck
run: ./node_modules/.bin/tsc -p tsconfig.typecheck.json
# ── Token validation (sans build) ──────────────────────────
- name: Validate tokens
run: node scripts/validate-tokens.mjs
# ── Build (tsc + copy assets) ──────────────────────────────
- name: Build
run: node scripts/build.mjs
# ── Export validation (post-build) ─────────────────────────
- name: Validate exports
run: node scripts/validate-exports.mjs
# ── Tests (token consistency, CSS parse validity) ──────────
- name: Test
run: npx vitest run
# ── CSS quality (duplicate props, tds- naming convention) ──
- name: Lint CSS
run: npx stylelint "src/**/*.css"
docs:
name: Build docs
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: apps/docs/package-lock.json
# ── @tds-tchad/core doit être buildé avant les docs : la page
# playground.astro sert le CSS réel via public/tds/ (copié depuis
# packages/core/dist par le script prebuild de apps/docs).
- name: Install core devDependencies
run: npm install --ignore-scripts
working-directory: packages/core
- name: Build core
run: node scripts/build.mjs
working-directory: packages/core
- name: Install docs dependencies
run: npm install
working-directory: apps/docs
- name: Build docs
run: npm run build
working-directory: apps/docs
# ── Accessibilité automatisée (axe-core + Puppeteer) ───────
- name: Test accessibility
run: npm run test:a11y
working-directory: apps/docs
publish:
name: Publish (release only)
needs: quality
runs-on: ubuntu-latest
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
defaults:
run:
working-directory: packages/core
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
registry-url: 'https://registry.npmjs.org'
- name: Install devDependencies (TypeScript)
run: npm install --ignore-scripts
- name: Build
run: node scripts/build.mjs
- name: Publish @tds-tchad/core
run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}