cistack 6.0.0 → 6.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/dependabot.yml +42 -0
- package/.github/workflows/ci.yml +2 -1
- package/.github/workflows/pipeline.yml +250 -0
- package/README.md +4 -0
- package/package.json +7 -2
- package/product-site/.github/dependabot.yml +27 -0
- package/product-site/.github/workflows/pipeline.yml +215 -0
- package/product-site/.lighthouserc.json +22 -0
- package/product-site/README.md +1 -0
- package/product-site/app/[lang]/layout.tsx +95 -0
- package/product-site/app/[lang]/page.tsx +19 -0
- package/product-site/app/favicon.ico +0 -0
- package/product-site/app/globals.css +228 -0
- package/product-site/app/manifest.ts +20 -0
- package/product-site/app/robots.ts +12 -0
- package/product-site/app/sitemap.ts +12 -0
- package/product-site/components/CanvasText.tsx +219 -0
- package/product-site/components/CopyButton.tsx +101 -0
- package/product-site/components/HomeClient.tsx +664 -0
- package/product-site/components/InstallToggle.tsx +123 -0
- package/product-site/components/MotionRevealClient.tsx +53 -0
- package/product-site/components/TerminalCard.tsx +65 -0
- package/product-site/components/TerminalCardMotion.tsx +324 -0
- package/product-site/components/site-motion.tsx +229 -0
- package/product-site/components/ui/accordion.tsx +74 -0
- package/product-site/components/ui/badge.tsx +52 -0
- package/product-site/components/ui/button.tsx +60 -0
- package/product-site/components/ui/card.tsx +103 -0
- package/product-site/components/ui/checkbox.tsx +29 -0
- package/product-site/components/ui/separator.tsx +25 -0
- package/product-site/components/ui/table.tsx +116 -0
- package/product-site/components/ui/tabs.tsx +82 -0
- package/product-site/components.json +25 -0
- package/product-site/dictionaries/br.json +276 -0
- package/product-site/dictionaries/cn.json +276 -0
- package/product-site/dictionaries/de.json +276 -0
- package/product-site/dictionaries/en.json +274 -0
- package/product-site/dictionaries/es.json +276 -0
- package/product-site/dictionaries/fr.json +276 -0
- package/product-site/dictionaries/pt.json +276 -0
- package/product-site/eslint.config.mjs +18 -0
- package/product-site/lib/dictionaries.ts +18 -0
- package/product-site/lib/dictionary-types.ts +3 -0
- package/product-site/lib/utils.ts +6 -0
- package/product-site/middleware.ts +39 -0
- package/product-site/next.config.mjs +14 -0
- package/product-site/package-lock.json +14201 -0
- package/product-site/package.json +42 -0
- package/product-site/postcss.config.mjs +7 -0
- package/product-site/public/file.svg +1 -0
- package/product-site/public/globe.svg +1 -0
- package/product-site/public/next.svg +1 -0
- package/product-site/public/og-image.png +0 -0
- package/product-site/public/vercel.svg +1 -0
- package/product-site/public/window.svg +1 -0
- package/product-site/scripts/sync-i18n.mjs +58 -0
- package/product-site/scripts/validate-i18n.mjs +45 -0
- package/product-site/tsconfig.json +34 -0
- package/product-site/types/negotiator.d.ts +14 -0
- package/product-site/vercel.json +5 -0
- package/src/index.js +12 -13
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
{
|
|
2
|
+
"copy_button": {
|
|
3
|
+
"idle": "Kopieren",
|
|
4
|
+
"success": "Kopiert"
|
|
5
|
+
},
|
|
6
|
+
"navigation": {
|
|
7
|
+
"repository": "GitHub",
|
|
8
|
+
"registry": "npm",
|
|
9
|
+
"reference": "Referenz",
|
|
10
|
+
"version": "Version",
|
|
11
|
+
"status": "Stabil"
|
|
12
|
+
},
|
|
13
|
+
"hero": {
|
|
14
|
+
"product_name": "cistack",
|
|
15
|
+
"tagline": "GitHub Actions CI/CD-Pipelines generieren – durch Analyse des Codes, den Sie bereits haben.",
|
|
16
|
+
"intro": "cistack scannt Ihr Projekt, erkennt den Stack und schreibt produktionsreife GitHub Actions-Workflows für CI, Deployment, Docker und Releases. Für echte Repos gedacht, nicht für Demos: Es liest Lockfiles, Framework-Signale, Release-Konfiguration, Monorepo-Workspaces, Hosting und Git-Branch-Metadaten, bevor YAML erzeugt wird.",
|
|
17
|
+
"npx_command": "npx cistack",
|
|
18
|
+
"weekly_downloads": "Wöchentliche Downloads",
|
|
19
|
+
"per_week": "letzte Woche auf npm",
|
|
20
|
+
"live_registry": "Live aus der Registry"
|
|
21
|
+
},
|
|
22
|
+
"preview": {
|
|
23
|
+
"title": "Lauf-Vorschau",
|
|
24
|
+
"caption": "Animierte CLI-Ausgabe nach dem Scannen eines typischen Projekts."
|
|
25
|
+
},
|
|
26
|
+
"why": {
|
|
27
|
+
"title": "Warum cistack",
|
|
28
|
+
"items": [
|
|
29
|
+
"Erkennt automatisch Sprachen, Frameworks, Testtools, Hosting-Anbieter und Release-Tools",
|
|
30
|
+
"Nutzt den Standard-Git-Branch des Repos, sofern verfügbar, statt main anzunehmen",
|
|
31
|
+
"Unterstützt Monorepos, Workflows pro Paket und paketmanagerbewusste Befehle",
|
|
32
|
+
"Erzeugt ökosystembewusste Dependabot-Konfiguration, einschließlich Bun bei vorhandenem bun.lock",
|
|
33
|
+
"Intelligentes Zusammenführen generierter Workflows mit vorhandenen Dateien statt blindes Überschreiben",
|
|
34
|
+
"Erzeugt Deploy-Pipelines für Vercel, Netlify, Firebase, GitHub Pages, AWS, Azure, Heroku, Render und Railway",
|
|
35
|
+
"Enthält eingebaute Befehle zum Audit und Upgrade von Workflows",
|
|
36
|
+
"Typisierte cistack.config.js-Unterstützung über index.d.ts",
|
|
37
|
+
"Abgesichert durch automatisierte Regressionstests (Branches, Release, Smart Merge, Monorepo-Skripte, CLI-Smoke-Tests)"
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
"install": {
|
|
41
|
+
"title": "Installation",
|
|
42
|
+
"quick_command": "Schnellstart",
|
|
43
|
+
"node_note": "cistack unterstützt Node.js 16+; das Projekt wird kontinuierlich auf Node.js 18, 20 und 22 in GitHub Actions geprüft."
|
|
44
|
+
},
|
|
45
|
+
"cli": {
|
|
46
|
+
"section_title": "CLI-Nutzung",
|
|
47
|
+
"items": [
|
|
48
|
+
{
|
|
49
|
+
"title": "Workflows generieren",
|
|
50
|
+
"paragraphs": [
|
|
51
|
+
"generate ist der Standardbefehl – npx cistack und npx cistack generate funktionieren beide.",
|
|
52
|
+
"Häufige Optionen:"
|
|
53
|
+
],
|
|
54
|
+
"snippets": [
|
|
55
|
+
"npx cistack",
|
|
56
|
+
"npx cistack generate",
|
|
57
|
+
"npx cistack generate --path /path/to/project",
|
|
58
|
+
"npx cistack generate --dry-run",
|
|
59
|
+
"npx cistack generate --explain",
|
|
60
|
+
"npx cistack generate --output .github/workflows",
|
|
61
|
+
"npx cistack generate --no-prompt"
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"title": "Bestehende Workflows prüfen",
|
|
66
|
+
"paragraphs": [
|
|
67
|
+
"Prüft das generierte Workflow-Verzeichnis (fehlende Concurrency, veraltete Actions, alte Node-Versionen, fehlender Dependency-Cache usw.). Ist outputDir in cistack.config.js gesetzt, nutzen audit und upgrade ebenfalls dieses Verzeichnis."
|
|
68
|
+
],
|
|
69
|
+
"snippets": ["npx cistack audit"]
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"title": "Workflow-Actions aktualisieren",
|
|
73
|
+
"paragraphs": [
|
|
74
|
+
"Aktualisiert bekannte GitHub Actions auf die neuesten unterstützten stabilen Versionen."
|
|
75
|
+
],
|
|
76
|
+
"snippets": ["npx cistack upgrade", "npx cistack upgrade --dry-run"]
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"title": "Starter-Konfiguration anlegen",
|
|
80
|
+
"paragraphs": [
|
|
81
|
+
"Schreibt cistack.config.js mit den unterstützten Override-Schlüsseln."
|
|
82
|
+
],
|
|
83
|
+
"snippets": ["npx cistack init"]
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
},
|
|
87
|
+
"generated": {
|
|
88
|
+
"section_title": "Was wird generiert",
|
|
89
|
+
"items": [
|
|
90
|
+
{
|
|
91
|
+
"title": "pipeline.yml",
|
|
92
|
+
"paragraphs": [
|
|
93
|
+
"Standardmäßig erzeugt cistack einen einzelnen GitHub Actions-Workflow mit CI-, Deploy-, Docker- und Release-Jobs, damit Teams die gesamte Pipeline in einer Datei sehen.",
|
|
94
|
+
"Enthält Lint, Test, Build, E2E, Deploy, Docker und Release, wenn der Stack es hergibt; nutzt den erkannten Standard-Branch oder konfigurierte Branches; behält Preview-Deploys und Release-Jobs in derselben Datei; dokumentiert benötigte Secrets im Dateikopf."
|
|
95
|
+
],
|
|
96
|
+
"snippets": []
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"title": "dependabot.yml",
|
|
100
|
+
"paragraphs": [
|
|
101
|
+
"Dependabot bleibt eine separate Datei unter .github/dependabot.yml, da es kein GitHub Actions-Workflow ist.",
|
|
102
|
+
"Für Preview-Deployments bei Dependabot-PRs auch Deploy-Zugangsdaten als Dependabot-Secrets hinterlegen, nicht nur als Actions-Secrets. Für Vercel: VERCEL_TOKEN, VERCEL_ORG_ID und VERCEL_PROJECT_ID."
|
|
103
|
+
],
|
|
104
|
+
"snippets": []
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"title": "Split-Modus",
|
|
108
|
+
"paragraphs": [
|
|
109
|
+
"Für das alte Mehrdatei-Layout workflowLayout in cistack.config.js auf split setzen. Im Split-Modus schreibt cistack wieder getrennte ci.yml, deploy.yml, docker.yml und release.yml."
|
|
110
|
+
],
|
|
111
|
+
"snippets": [
|
|
112
|
+
"module.exports = {\n workflowLayout: 'split',\n};"
|
|
113
|
+
]
|
|
114
|
+
}
|
|
115
|
+
]
|
|
116
|
+
},
|
|
117
|
+
"detection": {
|
|
118
|
+
"section_title": "Unterstützte Erkennung",
|
|
119
|
+
"hosting_title": "Hosting",
|
|
120
|
+
"hosting_tags": [
|
|
121
|
+
"Firebase",
|
|
122
|
+
"Vercel",
|
|
123
|
+
"Netlify",
|
|
124
|
+
"GitHub Pages",
|
|
125
|
+
"AWS",
|
|
126
|
+
"GCP App Engine",
|
|
127
|
+
"Azure",
|
|
128
|
+
"Heroku",
|
|
129
|
+
"Render",
|
|
130
|
+
"Railway",
|
|
131
|
+
"Docker"
|
|
132
|
+
],
|
|
133
|
+
"frameworks_title": "Frameworks",
|
|
134
|
+
"frameworks_tags": [
|
|
135
|
+
"Next.js",
|
|
136
|
+
"Nuxt",
|
|
137
|
+
"SvelteKit",
|
|
138
|
+
"Remix",
|
|
139
|
+
"Astro",
|
|
140
|
+
"Vite",
|
|
141
|
+
"React",
|
|
142
|
+
"Vue",
|
|
143
|
+
"Angular",
|
|
144
|
+
"Svelte",
|
|
145
|
+
"Gatsby",
|
|
146
|
+
"Express",
|
|
147
|
+
"Fastify",
|
|
148
|
+
"NestJS",
|
|
149
|
+
"Hono",
|
|
150
|
+
"Koa",
|
|
151
|
+
"Django",
|
|
152
|
+
"Flask",
|
|
153
|
+
"FastAPI",
|
|
154
|
+
"Rails",
|
|
155
|
+
"Spring Boot",
|
|
156
|
+
"Laravel",
|
|
157
|
+
"Go",
|
|
158
|
+
"Rust"
|
|
159
|
+
],
|
|
160
|
+
"testing_title": "Test-Tools",
|
|
161
|
+
"testing_tags": [
|
|
162
|
+
"Jest",
|
|
163
|
+
"Vitest",
|
|
164
|
+
"Mocha",
|
|
165
|
+
"Cypress",
|
|
166
|
+
"Playwright",
|
|
167
|
+
"Pytest",
|
|
168
|
+
"RSpec",
|
|
169
|
+
"Go test",
|
|
170
|
+
"Cargo test",
|
|
171
|
+
"PHPUnit",
|
|
172
|
+
"Maven / JUnit",
|
|
173
|
+
"Storybook"
|
|
174
|
+
]
|
|
175
|
+
},
|
|
176
|
+
"configuration": {
|
|
177
|
+
"section_title": "Konfiguration",
|
|
178
|
+
"intro": "Legen Sie cistack.config.js an, um die Erkennung zu überschreiben.",
|
|
179
|
+
"example_caption": "Beispiel",
|
|
180
|
+
"keys_title": "Unterstützte Konfigurationsschlüssel (Top-Level)",
|
|
181
|
+
"keys": [
|
|
182
|
+
"nodeVersion",
|
|
183
|
+
"packageManager",
|
|
184
|
+
"hosting",
|
|
185
|
+
"frameworks",
|
|
186
|
+
"testing",
|
|
187
|
+
"branches",
|
|
188
|
+
"workflowLayout",
|
|
189
|
+
"cache",
|
|
190
|
+
"monorepo",
|
|
191
|
+
"release",
|
|
192
|
+
"secrets",
|
|
193
|
+
"outputDir"
|
|
194
|
+
],
|
|
195
|
+
"branches_title": "Branch-Verhalten",
|
|
196
|
+
"branches": [
|
|
197
|
+
"Ist branches in der Config gesetzt, verwendet cistack diese exakt",
|
|
198
|
+
"Andernfalls wird der Standard-Branch aus Git-Metadaten gelesen, sofern verfügbar",
|
|
199
|
+
"Ohne Git-Metadaten fallen sichere Defaults wie main, master und develop je nach Workflow-Typ zurück"
|
|
200
|
+
],
|
|
201
|
+
"config_snippet": "/** @type {import('cistack').Config} */\nmodule.exports = {\n nodeVersion: '20',\n packageManager: 'pnpm',\n branches: ['main', 'staging'],\n workflowLayout: 'single',\n hosting: ['Vercel'],\n outputDir: '.github/workflows',\n cache: {\n npm: true,\n cargo: true,\n pip: true,\n },\n monorepo: {\n perPackage: true,\n },\n release: {\n tool: 'semantic-release',\n },\n};"
|
|
202
|
+
},
|
|
203
|
+
"secrets": {
|
|
204
|
+
"section_title": "Secrets",
|
|
205
|
+
"body": "Generierte Deploy- und Release-Workflows listen benötigte Secrets am Dateianfang. In GitHub unter Einstellungen → Secrets and variables → Actions hinterlegen."
|
|
206
|
+
},
|
|
207
|
+
"quality": {
|
|
208
|
+
"section_title": "Entwicklung und Qualität",
|
|
209
|
+
"intro": "Das Projekt enthält eine Regressionssuite für historisch fehleranfällige Bereiche:",
|
|
210
|
+
"items": [
|
|
211
|
+
"Behandlung von Config-Overrides",
|
|
212
|
+
"Erkennung des Standard-Branches",
|
|
213
|
+
"Auswahl des Deploy-Branches",
|
|
214
|
+
"Netlify-Produktions-Branch",
|
|
215
|
+
"Smart-Merge-Verhalten",
|
|
216
|
+
"Monorepo: Build-Skript pro Paket",
|
|
217
|
+
"Release-Konfigurationserkennung",
|
|
218
|
+
"Generierung des Release-Workflows",
|
|
219
|
+
"CLI-Dry-Run-Smoke-Tests"
|
|
220
|
+
],
|
|
221
|
+
"commands_title": "Prüfungen lokal ausführen",
|
|
222
|
+
"commands": [
|
|
223
|
+
"npm test",
|
|
224
|
+
"npm run test:smoke",
|
|
225
|
+
"node bin/ciflow.js audit --path .",
|
|
226
|
+
"node bin/ciflow.js upgrade --path . --dry-run"
|
|
227
|
+
],
|
|
228
|
+
"repo_note": "Beim veröffentlichten Paket lautet das Kommando cistack. Im cistack-Repository ist der lokale Einstieg bin/ciflow.js."
|
|
229
|
+
},
|
|
230
|
+
"footer": {
|
|
231
|
+
"license": "MIT-Lizenz",
|
|
232
|
+
"tagline": "CI/CD-Workflow-Generierung aus dem Repo, das Sie bereits haben.",
|
|
233
|
+
"architect_credit": "Erstellt von",
|
|
234
|
+
"architect_name": "Edwin Vakayil",
|
|
235
|
+
"copyright_suffix": "cistack. Alle Rechte vorbehalten, soweit zutreffend."
|
|
236
|
+
},
|
|
237
|
+
"install_toggle": {
|
|
238
|
+
"recommended": "empfohlen",
|
|
239
|
+
"npm_global": "npm install -g",
|
|
240
|
+
"recommended_badge": "Empfohlen",
|
|
241
|
+
"global_badge": "Global",
|
|
242
|
+
"npx_desc": "Holt stets die neueste Version. Keine globale Installation.",
|
|
243
|
+
"npm_desc": "Am besten, wenn Sie cistack in vielen Repos nutzen."
|
|
244
|
+
},
|
|
245
|
+
"terminal": {
|
|
246
|
+
"label": "TERMINAL",
|
|
247
|
+
"mission": "KERN_MISSION // L_02",
|
|
248
|
+
"project_scanned": "✔ Projekt gescannt",
|
|
249
|
+
"stack_detected": "✔ Stack erkannt",
|
|
250
|
+
"detected_stack": "Erkannter Stack",
|
|
251
|
+
"languages": "Sprachen:",
|
|
252
|
+
"frameworks": "Frameworks:",
|
|
253
|
+
"hosting": "Hosting:",
|
|
254
|
+
"testing": "Tests:",
|
|
255
|
+
"release_tool": "Release-Tool:",
|
|
256
|
+
"look_correct": "? Passt das? Pipeline mit diesen Einstellungen generieren? Ja",
|
|
257
|
+
"generated_workflows": "✔ 3 CI-Workflow(s) generiert",
|
|
258
|
+
"smart_merged": "↻ Smart-Merge: ci.yml",
|
|
259
|
+
"updated_on": "Top-Level \"on\" aktualisiert",
|
|
260
|
+
"updated_concurrency": "Top-Level \"concurrency\" aktualisiert",
|
|
261
|
+
"added_lint": "Job \"lint\" hinzugefügt",
|
|
262
|
+
"updated_build": "Job \"build\" → \"name\" aktualisiert",
|
|
263
|
+
"updated_needs": "Job \"build\" → \"needs\" aktualisiert",
|
|
264
|
+
"added_checkout": "Job \"build\" → Schritt \"Checkout code\" hinzugefügt",
|
|
265
|
+
"added_node": "Job \"build\" → Schritt \"Set up Node.js\" hinzugefügt",
|
|
266
|
+
"updated_step_build": "Job \"build\" → Schritt \"Build\" aktualisiert",
|
|
267
|
+
"added_upload": "Job \"build\" → Schritt \"Upload build artifact\" hinzugefügt",
|
|
268
|
+
"written_deploy": "Geschrieben: deploy.yml",
|
|
269
|
+
"written_security": "Geschrieben: security.yml",
|
|
270
|
+
"written_dependabot": "Geschrieben: .github/dependabot.yml",
|
|
271
|
+
"done_msg": "Fertig! Ihre GitHub Actions-Pipeline ist bereit.",
|
|
272
|
+
"workflows_path": "Workflows → cistack/.github/workflows",
|
|
273
|
+
"dependabot_path": "Dependabot → cistack/.github/dependabot.yml",
|
|
274
|
+
"processing": "Ausgabe wird verarbeitet…"
|
|
275
|
+
}
|
|
276
|
+
}
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
{
|
|
2
|
+
"copy_button": {
|
|
3
|
+
"idle": "Copy",
|
|
4
|
+
"success": "Copied"
|
|
5
|
+
},
|
|
6
|
+
"navigation": {
|
|
7
|
+
"repository": "GitHub",
|
|
8
|
+
"registry": "npm",
|
|
9
|
+
"reference": "Reference",
|
|
10
|
+
"version": "Version",
|
|
11
|
+
"status": "Stable"
|
|
12
|
+
},
|
|
13
|
+
"hero": {
|
|
14
|
+
"product_name": "cistack",
|
|
15
|
+
"tagline": "Generate GitHub Actions CI/CD pipelines by analyzing the codebase you already have.",
|
|
16
|
+
"intro": "cistack scans your project, detects the stack, and writes production-ready GitHub Actions workflows for CI, deployment, Docker, and releases. It is designed for real repos, not toy demos: it reads lock files, framework signals, release config, monorepo workspaces, hosting config, and Git branch metadata before generating YAML.",
|
|
17
|
+
"npx_command": "npx cistack",
|
|
18
|
+
"weekly_downloads": "Weekly downloads",
|
|
19
|
+
"per_week": "last week on npm",
|
|
20
|
+
"live_registry": "Live from registry"
|
|
21
|
+
},
|
|
22
|
+
"preview": {
|
|
23
|
+
"title": "Run preview",
|
|
24
|
+
"caption": "Animated CLI output after scanning a typical project."
|
|
25
|
+
},
|
|
26
|
+
"why": {
|
|
27
|
+
"title": "Why cistack",
|
|
28
|
+
"items": [
|
|
29
|
+
"Detects languages, frameworks, testing tools, hosting providers, and release tooling automatically",
|
|
30
|
+
"Uses your repository's default Git branch when available instead of assuming main",
|
|
31
|
+
"Supports monorepos, per-package workflows, and package-manager-aware commands",
|
|
32
|
+
"Generates ecosystem-aware Dependabot config, including Bun when bun.lock is present",
|
|
33
|
+
"Smart-merges generated workflows with existing files instead of blindly overwriting them",
|
|
34
|
+
"Generates deploy pipelines for Vercel, Netlify, Firebase, GitHub Pages, AWS, Azure, Heroku, Render, and Railway",
|
|
35
|
+
"Ships with built-in workflow audit and upgrade commands",
|
|
36
|
+
"Includes typed cistack.config.js support through index.d.ts",
|
|
37
|
+
"Backed by an automated regression suite covering branch handling, release detection, smart merge behavior, monorepo package scripts, and CLI smoke tests"
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
"install": {
|
|
41
|
+
"title": "Installation",
|
|
42
|
+
"quick_command": "Quick install",
|
|
43
|
+
"node_note": "cistack supports Node.js 16+, and the project itself is continuously verified on Node.js 18, 20, and 22 in GitHub Actions."
|
|
44
|
+
},
|
|
45
|
+
"cli": {
|
|
46
|
+
"section_title": "CLI usage",
|
|
47
|
+
"items": [
|
|
48
|
+
{
|
|
49
|
+
"title": "Generate workflows",
|
|
50
|
+
"paragraphs": [
|
|
51
|
+
"generate is the default command, so both npx cistack and npx cistack generate work.",
|
|
52
|
+
"Common options:"
|
|
53
|
+
],
|
|
54
|
+
"snippets": [
|
|
55
|
+
"npx cistack",
|
|
56
|
+
"npx cistack generate",
|
|
57
|
+
"npx cistack generate --path /path/to/project",
|
|
58
|
+
"npx cistack generate --dry-run",
|
|
59
|
+
"npx cistack generate --explain",
|
|
60
|
+
"npx cistack generate --output .github/workflows",
|
|
61
|
+
"npx cistack generate --no-prompt"
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"title": "Audit existing workflows",
|
|
66
|
+
"paragraphs": [
|
|
67
|
+
"Checks your generated workflow directory for issues like missing concurrency blocks, outdated actions, old Node versions, and missing dependency caching. If you set outputDir in cistack.config.js, audit and upgrade use that directory too."
|
|
68
|
+
],
|
|
69
|
+
"snippets": ["npx cistack audit"]
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"title": "Upgrade workflow actions",
|
|
73
|
+
"paragraphs": [
|
|
74
|
+
"Updates known GitHub Actions to their latest supported stable versions."
|
|
75
|
+
],
|
|
76
|
+
"snippets": ["npx cistack upgrade", "npx cistack upgrade --dry-run"]
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"title": "Create a starter config",
|
|
80
|
+
"paragraphs": ["Writes cistack.config.js with the supported override keys."],
|
|
81
|
+
"snippets": ["npx cistack init"]
|
|
82
|
+
}
|
|
83
|
+
]
|
|
84
|
+
},
|
|
85
|
+
"generated": {
|
|
86
|
+
"section_title": "What gets generated",
|
|
87
|
+
"items": [
|
|
88
|
+
{
|
|
89
|
+
"title": "pipeline.yml",
|
|
90
|
+
"paragraphs": [
|
|
91
|
+
"By default, cistack generates a single GitHub Actions workflow that combines CI, deploy, Docker, and release jobs into one place so teams can track the whole pipeline from one file.",
|
|
92
|
+
"It includes lint, test, build, E2E, deploy, Docker, and release jobs when those parts of the stack are detected, uses the detected default branch or your configured branches, keeps preview deploys and release jobs in the same workflow file, and documents required secrets in the file header."
|
|
93
|
+
],
|
|
94
|
+
"snippets": []
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"title": "dependabot.yml",
|
|
98
|
+
"paragraphs": [
|
|
99
|
+
"Dependabot remains a separate file in .github/dependabot.yml, because it is not a GitHub Actions workflow.",
|
|
100
|
+
"If you want preview deployments on Dependabot pull requests, add deployment credentials as Dependabot secrets too, not only Actions secrets. For Vercel, that means VERCEL_TOKEN, VERCEL_ORG_ID, and VERCEL_PROJECT_ID."
|
|
101
|
+
],
|
|
102
|
+
"snippets": []
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"title": "Split mode",
|
|
106
|
+
"paragraphs": [
|
|
107
|
+
"If you prefer the old multi-file layout, set workflowLayout to split in cistack.config.js. In split mode, cistack writes separate ci.yml, deploy.yml, docker.yml, and release.yml files again."
|
|
108
|
+
],
|
|
109
|
+
"snippets": [
|
|
110
|
+
"module.exports = {\n workflowLayout: 'split',\n};"
|
|
111
|
+
]
|
|
112
|
+
}
|
|
113
|
+
]
|
|
114
|
+
},
|
|
115
|
+
"detection": {
|
|
116
|
+
"section_title": "Supported detection",
|
|
117
|
+
"hosting_title": "Hosting",
|
|
118
|
+
"hosting_tags": [
|
|
119
|
+
"Firebase",
|
|
120
|
+
"Vercel",
|
|
121
|
+
"Netlify",
|
|
122
|
+
"GitHub Pages",
|
|
123
|
+
"AWS",
|
|
124
|
+
"GCP App Engine",
|
|
125
|
+
"Azure",
|
|
126
|
+
"Heroku",
|
|
127
|
+
"Render",
|
|
128
|
+
"Railway",
|
|
129
|
+
"Docker"
|
|
130
|
+
],
|
|
131
|
+
"frameworks_title": "Frameworks",
|
|
132
|
+
"frameworks_tags": [
|
|
133
|
+
"Next.js",
|
|
134
|
+
"Nuxt",
|
|
135
|
+
"SvelteKit",
|
|
136
|
+
"Remix",
|
|
137
|
+
"Astro",
|
|
138
|
+
"Vite",
|
|
139
|
+
"React",
|
|
140
|
+
"Vue",
|
|
141
|
+
"Angular",
|
|
142
|
+
"Svelte",
|
|
143
|
+
"Gatsby",
|
|
144
|
+
"Express",
|
|
145
|
+
"Fastify",
|
|
146
|
+
"NestJS",
|
|
147
|
+
"Hono",
|
|
148
|
+
"Koa",
|
|
149
|
+
"Django",
|
|
150
|
+
"Flask",
|
|
151
|
+
"FastAPI",
|
|
152
|
+
"Rails",
|
|
153
|
+
"Spring Boot",
|
|
154
|
+
"Laravel",
|
|
155
|
+
"Go",
|
|
156
|
+
"Rust"
|
|
157
|
+
],
|
|
158
|
+
"testing_title": "Testing tools",
|
|
159
|
+
"testing_tags": [
|
|
160
|
+
"Jest",
|
|
161
|
+
"Vitest",
|
|
162
|
+
"Mocha",
|
|
163
|
+
"Cypress",
|
|
164
|
+
"Playwright",
|
|
165
|
+
"Pytest",
|
|
166
|
+
"RSpec",
|
|
167
|
+
"Go test",
|
|
168
|
+
"Cargo test",
|
|
169
|
+
"PHPUnit",
|
|
170
|
+
"Maven / JUnit",
|
|
171
|
+
"Storybook"
|
|
172
|
+
]
|
|
173
|
+
},
|
|
174
|
+
"configuration": {
|
|
175
|
+
"section_title": "Configuration",
|
|
176
|
+
"intro": "Create cistack.config.js when you want to override detection.",
|
|
177
|
+
"example_caption": "Example",
|
|
178
|
+
"keys_title": "Supported top-level config keys",
|
|
179
|
+
"keys": [
|
|
180
|
+
"nodeVersion",
|
|
181
|
+
"packageManager",
|
|
182
|
+
"hosting",
|
|
183
|
+
"frameworks",
|
|
184
|
+
"testing",
|
|
185
|
+
"branches",
|
|
186
|
+
"workflowLayout",
|
|
187
|
+
"cache",
|
|
188
|
+
"monorepo",
|
|
189
|
+
"release",
|
|
190
|
+
"secrets",
|
|
191
|
+
"outputDir"
|
|
192
|
+
],
|
|
193
|
+
"branches_title": "Branch behavior",
|
|
194
|
+
"branches": [
|
|
195
|
+
"If branches is set in config, cistack uses it exactly",
|
|
196
|
+
"Otherwise it reads the repository's default branch from Git metadata when available",
|
|
197
|
+
"If Git metadata is unavailable, it falls back to safe defaults like main, master, and develop depending on the workflow type"
|
|
198
|
+
],
|
|
199
|
+
"config_snippet": "/** @type {import('cistack').Config} */\nmodule.exports = {\n nodeVersion: '20',\n packageManager: 'pnpm',\n branches: ['main', 'staging'],\n workflowLayout: 'single',\n hosting: ['Vercel'],\n outputDir: '.github/workflows',\n cache: {\n npm: true,\n cargo: true,\n pip: true,\n },\n monorepo: {\n perPackage: true,\n },\n release: {\n tool: 'semantic-release',\n },\n};"
|
|
200
|
+
},
|
|
201
|
+
"secrets": {
|
|
202
|
+
"section_title": "Secrets",
|
|
203
|
+
"body": "Generated deploy and release workflows document the secrets they need at the top of each file. Add them in GitHub under Settings, Secrets and variables, Actions."
|
|
204
|
+
},
|
|
205
|
+
"quality": {
|
|
206
|
+
"section_title": "Development and quality",
|
|
207
|
+
"intro": "The project includes a regression suite for the areas that were historically the easiest to break:",
|
|
208
|
+
"items": [
|
|
209
|
+
"config override handling",
|
|
210
|
+
"default branch detection",
|
|
211
|
+
"deploy branch selection",
|
|
212
|
+
"Netlify production branch handling",
|
|
213
|
+
"smart merge behavior",
|
|
214
|
+
"monorepo per-package build script lookup",
|
|
215
|
+
"release config detection",
|
|
216
|
+
"release workflow generation",
|
|
217
|
+
"CLI dry-run smoke testing"
|
|
218
|
+
],
|
|
219
|
+
"commands_title": "Run checks locally",
|
|
220
|
+
"commands": [
|
|
221
|
+
"npm test",
|
|
222
|
+
"npm run test:smoke",
|
|
223
|
+
"node bin/ciflow.js audit --path .",
|
|
224
|
+
"node bin/ciflow.js upgrade --path . --dry-run"
|
|
225
|
+
],
|
|
226
|
+
"repo_note": "If you are using the published package, the executable is cistack. In the cistack repository, the local entrypoint is bin/ciflow.js."
|
|
227
|
+
},
|
|
228
|
+
"footer": {
|
|
229
|
+
"license": "MIT License",
|
|
230
|
+
"tagline": "CI/CD workflow generation from the repo you already have.",
|
|
231
|
+
"architect_credit": "Created by",
|
|
232
|
+
"architect_name": "Edwin Vakayil",
|
|
233
|
+
"copyright_suffix": "cistack. All rights reserved where applicable."
|
|
234
|
+
},
|
|
235
|
+
"install_toggle": {
|
|
236
|
+
"recommended": "recommended",
|
|
237
|
+
"npm_global": "npm install -g",
|
|
238
|
+
"recommended_badge": "Recommended",
|
|
239
|
+
"global_badge": "Global",
|
|
240
|
+
"npx_desc": "Always fetches the latest version. No global install.",
|
|
241
|
+
"npm_desc": "Best when you use cistack across many repositories."
|
|
242
|
+
},
|
|
243
|
+
"terminal": {
|
|
244
|
+
"label": "TERMINAL",
|
|
245
|
+
"mission": "CORE_MISSION // L_02",
|
|
246
|
+
"project_scanned": "✔ Project scanned",
|
|
247
|
+
"stack_detected": "✔ Stack detected",
|
|
248
|
+
"detected_stack": "Detected Stack",
|
|
249
|
+
"languages": "Languages:",
|
|
250
|
+
"frameworks": "Frameworks:",
|
|
251
|
+
"hosting": "Hosting:",
|
|
252
|
+
"testing": "Testing:",
|
|
253
|
+
"release_tool": "Release tool:",
|
|
254
|
+
"look_correct": "? Does this look correct? Generate pipeline with these settings? Yes",
|
|
255
|
+
"generated_workflows": "✔ Generated 3 CI workflow(s)",
|
|
256
|
+
"smart_merged": "↻ Smart-merged: ci.yml",
|
|
257
|
+
"updated_on": "updated top-level \"on\"",
|
|
258
|
+
"updated_concurrency": "updated top-level \"concurrency\"",
|
|
259
|
+
"added_lint": "added job \"lint\"",
|
|
260
|
+
"updated_build": "job \"build\" → updated \"name\"",
|
|
261
|
+
"updated_needs": "job \"build\" → updated \"needs\"",
|
|
262
|
+
"added_checkout": "job \"build\" → added step \"Checkout code\"",
|
|
263
|
+
"added_node": "job \"build\" → added step \"Set up Node.js\"",
|
|
264
|
+
"updated_step_build": "job \"build\" → updated step \"Build\"",
|
|
265
|
+
"added_upload": "job \"build\" → added step \"Upload build artifact\"",
|
|
266
|
+
"written_deploy": "Written: deploy.yml",
|
|
267
|
+
"written_security": "Written: security.yml",
|
|
268
|
+
"written_dependabot": "Written: .github/dependabot.yml",
|
|
269
|
+
"done_msg": "Done! Your GitHub Actions pipeline is ready.",
|
|
270
|
+
"workflows_path": "Workflows → cistack/.github/workflows",
|
|
271
|
+
"dependabot_path": "Dependabot → cistack/.github/dependabot.yml",
|
|
272
|
+
"processing": "Processing output…"
|
|
273
|
+
}
|
|
274
|
+
}
|