CI as the kit's, releases gated on it, and plugin-kit v0.2.2 #1

Merged
bcox merged 5 commits from bcox/ci-and-kit-0.2.2 into main 2026-11-04 03:10:49 +00:00 AGit
Owner

Brings plugin-template up to plugin-kit v0.2.2, with CI like the kit's. Releases now build only after CI passes.

Kit pin

  • v0.1.1 → v0.2.1 → v0.2.2 (8c7cc89). The bazel_dep version is raised to match.
  • v0.2.2 writes moduleinfo.json into the x86-64 Linux packages' .vst3. It was left out while the packages were built on forge-runner, an Ivy Bridge that can't run the plugins moduleinfotool loads.

CI (.forgejo/workflows/ci.yml)

  • These lanes come from the kit's workflow: the default build with -Werror, opt, asan, ubsan, tsan, pi (builds for the Pi and runs nothing), macos, and coverage on pull requests.
  • passed is a final job that succeeds only if every lane did. It's the one check for branch protection to require.
  • With them come the sanitizer, Pi and coverage settings in .bazelrc, the Pi toolchain and sysroot in MODULE.bazel, and tools/ci_test.sh and tools/coverage.sh. /coverage/ is added to .gitignore, and rename.sh skips it.

Release (.forgejo/workflows/release.yml)

  • The release calls ci.yml on the tag or branch it builds. The disk image and Linux builds wait for CI to pass, so nothing is built, uploaded or attached on a failure.
  • The Linux build moves from docker (forge-runner) to x86-64-v3, so its .vst3 gets moduleinfo.json.

Checked locally

  • All lanes pass (-Werror, opt, asan, ubsan, tsan, pi, coverage at 100%).
  • The x86-64 .deb has moduleinfo.json, and the arm64 one leaves it out.
  • A copy put through rename.sh tests and builds for the Pi.

Check on Forgejo

  • This is the first run of ci.yml.
  • The first release run should show ci.yml's jobs as jobs of the release run, and image and linux waiting for them. This is unverified on Forgejo 14.

🤖 Generated with Claude Code

Brings plugin-template up to plugin-kit v0.2.2, with CI like the kit's. Releases now build only after CI passes. ## Kit pin - v0.1.1 → v0.2.1 → **v0.2.2** (`8c7cc89`). The `bazel_dep` version is raised to match. - v0.2.2 writes `moduleinfo.json` into the x86-64 Linux packages' `.vst3`. It was left out while the packages were built on forge-runner, an Ivy Bridge that can't run the plugins `moduleinfotool` loads. ## CI (`.forgejo/workflows/ci.yml`) - These lanes come from the kit's workflow: the default build with `-Werror`, `opt`, `asan`, `ubsan`, `tsan`, `pi` (builds for the Pi and runs nothing), `macos`, and coverage on pull requests. - **`passed`** is a final job that succeeds only if every lane did. It's the one check for branch protection to require. - With them come the sanitizer, Pi and coverage settings in `.bazelrc`, the Pi toolchain and sysroot in `MODULE.bazel`, and `tools/ci_test.sh` and `tools/coverage.sh`. `/coverage/` is added to `.gitignore`, and `rename.sh` skips it. ## Release (`.forgejo/workflows/release.yml`) - The release calls `ci.yml` on the tag or branch it builds. The disk image and Linux builds wait for CI to pass, so nothing is built, uploaded or attached on a failure. - The Linux build moves from `docker` (forge-runner) to `x86-64-v3`, so its `.vst3` gets `moduleinfo.json`. ## Checked locally - All lanes pass (`-Werror`, `opt`, `asan`, `ubsan`, `tsan`, `pi`, coverage at 100%). - The x86-64 .deb has `moduleinfo.json`, and the arm64 one leaves it out. - A copy put through `rename.sh` tests and builds for the Pi. ## Check on Forgejo - This is the first run of `ci.yml`. - The first release run should show `ci.yml`'s jobs as jobs of the release run, and `image` and `linux` waiting for them. This is unverified on Forgejo 14. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ci.yml has the kit's lanes: the default build with -Werror, opt, asan, ubsan,
tsan, pi, macos and, on a pull request, coverage. It ends in passed, which
succeeds only when every lane did. release.yml calls it on the ref it builds,
and builds and attaches nothing until it passes. The .bazelrc configs, the Pi
toolchain and tools/ci_test.sh and coverage.sh come from the kit with them.

The Linux packages are built on the x86-64-v3 runner now, not forge-runner's
Ivy Bridge, so that moduleinfotool can load the plugins it describes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bump to 2.0
Some checks failed
ci / macos (pull_request) Failing after 41s
ci / default (pull_request) Has been cancelled
ci / opt (pull_request) Has been cancelled
ci / asan (pull_request) Has been cancelled
ci / ubsan (pull_request) Has been cancelled
ci / tsan (pull_request) Has been cancelled
ci / pi (pull_request) Has been cancelled
ci / coverage (pull_request) Has been cancelled
ci / passed (pull_request) Has been cancelled
c8729c87fe
Coverage of this repository's own files only
All checks were successful
ci / macos (pull_request) Successful in 36s
ci / default (pull_request) Successful in 2m58s
ci / opt (pull_request) Successful in 2m21s
ci / asan (pull_request) Successful in 2m33s
ci / ubsan (pull_request) Successful in 2m39s
ci / tsan (pull_request) Successful in 2m21s
ci / pi (pull_request) Successful in 2m24s
ci / passed (pull_request) Successful in 7s
ci / coverage (pull_request) Successful in 2m33s
6c07c75224
On macOS the kit's Audio Unit sources, which its macros compile into the
plugins' targets here, are instrumented too, under external/, where genhtml
finds no source and stops. The macos lane failed on that.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Diff Coverage

Diff: origin/main...HEAD, staged and unstaged changes

No lines with coverage information in this diff.

Whole suite: 100.0% 31/31 total. Every file: the coverage-html artifact of this run.

On macOS, with the Audio Unit and the Mac's window: 100.0% 31/31 total (the coverage-macos artifact).

# Diff Coverage ## Diff: origin/main...HEAD, staged and unstaged changes No lines with coverage information in this diff. Whole suite: 100.0% 31/31 total. Every file: the coverage-html artifact of [this run](https://forge.djehuti.com/bcox/plugin-template/actions/runs/2). On macOS, with the Audio Unit and the Mac's window: 100.0% 31/31 total (the coverage-macos artifact).
bcox merged commit eb9478447b into main 2026-11-04 03:10:49 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
bcox/plugin-template!1
No description provided.