banisterious_obsidian-custo.../docs/developer
banisterious 8dff24e71e feat(ci): release workflow with build-provenance attestations
Adopt the same release pipeline that landed in Draft Bench, adapted
to this plugin's existing scripts and assets.

What lands together:

- `.github/workflows/release.yml`. Tag-push trigger matching plain
  SemVer (`1.6.6`) and pre-release SemVer (`1.6.6-rc1`). Runs
  `npm ci`, `npm run lint` (the obsidianmd ruleset), and
  `npm run build`. Calls `actions/attest-build-provenance@v2` on
  `main.js`, `manifest.json`, and `styles.css` so each release asset
  carries a verifiable GitHub artifact attestation. Creates a draft
  release with the three assets attached; pre-release tags get
  `--prerelease`. The draft step preserves the editorial gate -
  release-description markdown is pasted into the draft by hand
  before publishing, keeping writing-style review on every release.

- `.nvmrc` pinning Node 22.20.0 (matches local dev). Both CI and
  local environments resolve the same Node via
  `actions/setup-node@v4`'s `node-version-file: '.nvmrc'`.

- `docs/developer/release.md` rewritten to document the CI flow:
  required artifacts, the trial-run procedure with `-rc1` tags, the
  attestation-verification command, and the recovery path for a
  failed CI run.

Customizations from the reference workflow:

- Dropped the `lint:css` step. The plugin has CSS sources but no
  stylelint config; adding one is real follow-up work and the
  community-site rescan covers CSS lint server-side until that
  lands.
- Dropped the `test` step. No test infrastructure yet; that's Phase
  4 of the audit plan. The step is straightforward to add later.

Release assets are the standard Obsidian three: `main.js` (built
fresh by CI), `manifest.json` (committed), `styles.css` (committed).
2026-05-12 15:21:28 -07:00
..
architecture Fix CTRL-A Select All timing issue in Reading view 2025-07-21 18:39:53 -07:00
release.md feat(ci): release workflow with build-provenance attestations 2026-05-12 15:21:28 -07:00