-
Notifications
You must be signed in to change notification settings - Fork 0
Build and Publishing
github-actions[bot] edited this page Jun 22, 2026
·
1 revision
How @canvasflow/feed is built, published to GitHub Packages, and how this wiki is synced.
← Back to Home · Related: Getting Started · Testing
npm run build # vp pack → dist/The build is configured under the pack key in vite.config.ts:
-
entry: ['src/index.ts']— the single public entry point. -
format: ['esm']— ESM only. -
dts: true— emit TypeScript declarations (dist/index.d.mts). -
unbundle: true— emit unbundled, per-module output mirroringsrc/. -
clean: true— wipedist/first.
Only dist/ is published (files in package.json). The package exposes ./dist/index.mjs (module/main) and ./dist/index.d.mts (types).
Publishing is automated by the 🚀 Publish workflow (.github/workflows/publish.yml), triggered when a v* tag is pushed.
| Job | Trigger | What it does |
|---|---|---|
| 🧪 Test | push of a v* tag |
npm ci, then npm run coverage and append a coverage summary to the run summary. |
| 🚀 Publish | after Test |
npm ci → npm run build → npm pack --dry-run → npm publish to GitHub Packages (@canvasflow scope). |
| 📚 Sync Wiki | push of a v* tag |
Mirror docs/wiki/ into the repository's GitHub Wiki (independent of the other jobs). |
- Land changes on
main. - Bump the version (
package.json) and updateCHANGELOG.md(npm run changelog). - Tag a release
vX.Y.Zand push the tag — the Publish workflow tests, builds, publishes, and syncs the wiki.
The Sync Wiki job mirrors the Markdown in docs/wiki/ into the repo's GitHub Wiki. It:
- runs on push of a
v*tag, independently of the test/publish jobs; - clones the wiki Git repo (or initializes it if the wiki has never been created — the Wikis feature must be enabled in Settings → Features);
-
rsyncsdocs/wiki/into the wiki root with--delete, so pages removed from source are removed from the wiki; - strips the
.mdsuffix from links between sibling wiki pages (leaving repo-relative../../…and absolutehttps://…links untouched), then commits and pushes to the wiki'smasterbranch.
Because of that link rewriting, write internal links as [Page](Page) — they work in-repo and resolve correctly once published.
- One page per file; the filename (with spaces as hyphens) is the wiki page title, e.g.
Getting-Started.md→ Getting Started. -
Home.mdis the landing page;_Sidebar.mdis the navigation sidebar. - Link sibling pages with the
.mdsuffix; link repo files with../../relative paths.
Start here
Reference
Operations