Walkthrough: .vscode and GitHub CI/CD
This document records the project-specific setup for editor configuration and continuous integration for the devcentr.org repository.
Decision: .vscode only (no code-workspace)
-
Chosen approach: use a committed
.vscodefolder in this repo only. No multi-root.code-workspacefile. -
Rationale: Single-repo project; shared settings and recommended extensions live in
.vscodeso all contributors get the same editor behavior and hints.
What was added
.vscode (committed)
-
.vscode/settings.json— project settings: dprint as default formatter, format on save for TypeScript/TSX/JSON/JSONC. -
.vscode/extensions.json— recommended extensions:dprint.dprint,solidjs-community.solid-js.
.vscode is not in .gitignore in this repo, so these files are versioned.
GitHub Actions CI and deploy
-
Workflow file:
.github/workflows/ci.yml -
Triggers: push and pull_request to
main -
Build job: Ubuntu, Node 22, pnpm 9; checks out sibling repos for changelog ingest, toolchain-advisor SDL, and agent-rules bootstrap profiles;
pnpm install --no-frozen-lockfilethenpnpm run build. Static build output is in.output/public. A.nojekyllfile is added there so GitHub Pages serves_buildand_servercorrectly. Post-build, CI assertsskills/index.htmlandcatalog/bootstrap-profiles.jsonexist. -
Deploy job (runs only on push to
main): uploads.output/publicas the Pages artifact and deploys viaactions/deploy-pages. Requires GitHub Pages to be set to "Deploy from a GitHub Actions workflow" in the repo Settings → Pages. Custom domain (e.g. devcentr.org) can be set there.
Other dev-centr projects
Some other repos under dev-centr have .vscode/ in their .gitignore (e.g. docs, issue-tracker, github-actions-editor). This repo does not ignore .vscode; standardizing others would require removing that ignore and adding a shared or repo-specific .vscode there.
Summary
| Item | Result |
|-------------------|--------|
| Workspace style | .vscode only, no .code-workspace |
| .vscode committed | Yes (settings.json, extensions.json) |
| CI/CD | GitHub Actions: build on push/PR; deploy to GitHub Pages on push to main |
| Build output | Static (.output/public) for Pages |
| Lockfile | pnpm-lock.yaml committed for CI |