Skip to content

ci(release): add tag-triggered signed release workflow#10

Merged
yves-vogl merged 1 commit into
mainfrom
ci/signed-release-workflow
Jul 16, 2026
Merged

ci(release): add tag-triggered signed release workflow#10
yves-vogl merged 1 commit into
mainfrom
ci/signed-release-workflow

Conversation

@yves-vogl

Copy link
Copy Markdown
Contributor

Summary

  • Adds .github/workflows/release.yml, adapted from the suite-wide template (.scaffold/release-workflow-template.yml) with the CMake target substituted for Seraph (confirmed via project(Seraph ...) / juce_add_plugin(Seraph ...) in CMakeLists.txt, matching ci.yml's build/Seraph_artefacts artefact root).
  • Trigger: push: tags: ['v*'] only — never runs on pull requests (including from forks), so org secrets are never exposed to untrusted code.
  • macOS job: builds AU/VST3/Standalone universal (arm64+x86_64), imports the signing cert into a throwaway keychain (deleted in an if: always() step), codesigns, notarizes via notarytool, staples, zips, and uploads to the GitHub release.
  • Windows job: builds VST3/Standalone unsigned by design — no Windows signing cert/process exists in this suite yet.
  • Artefact discovery uses find against build/Seraph_artefacts instead of a hardcoded .../Release path, mirroring ci.yml's existing "Locate plugin artefacts" step, since JUCE's output path depends on whether the generator is single- or multi-config.
  • Permissions are scoped to contents: write only (needed to attach release assets).

Status / dependencies

  • Pending: this workflow depends on org-level secrets (APPLE_CERT_P12, APPLE_CERT_PASSWORD, APPLE_API_KEY_P8, APPLE_API_KEY_ID, APPLE_API_ISSUER_ID) that are not part of this PR. Until those are configured at the org level, a v* tag push will fail at the signing step.
  • No existing files under .github/ were modified — this PR only adds the new workflow file.

Test plan

  • python3 -c "import yaml; yaml.safe_load(open('.github/workflows/release.yml'))" — YAML parses cleanly.
  • Push a v* tag once org secrets are configured, and confirm the release workflow runs end-to-end (out of scope for this PR — human-supervised follow-up).

🤖 Generated with Claude Code

Mirrors the suite-wide template (.scaffold/release-workflow-template.yml)
with the CMake target substituted for Seraph. Locates build artefacts via
find rather than a hardcoded Release/ path, matching ci.yml's existing
"Locate plugin artefacts" workaround for single- vs multi-config generators.
@yves-vogl
yves-vogl merged commit f910707 into main Jul 16, 2026
2 checks passed
@yves-vogl
yves-vogl deleted the ci/signed-release-workflow branch July 16, 2026 00:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant