Add build pipeline - #92
Merged
Merged
Conversation
Moves the two pipelines that lived on the fork into this repo, and gates
publishing behind an explicit opt-in.
release.yml is manual-dispatch with a `publish_release` checkbox:
unchecked (default) — build every artifact on every platform, verify the
release contents, render the downloads table into the run summary, and
stop. No tag, no release.
checked — the same build, then tag v<YYYY-MM-DD-HH-MM> (UTC) at the built
commit and publish the release with the same body/layout as before.
The version job now also emits the tag and the resolved commit SHA, so a
published tag lands on what was actually built rather than on the ref the
run was dispatched from (they differ whenever build_branch is set). A
pre-flight check refuses to publish onto an existing tag instead of letting
the release action move it.
appstore.yml is unchanged and stays manual-only. sync-upstream.yml is
deliberately not brought over — it syncs a fork from upstream and has no
meaning here.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vw17TVNLNCrcnmYUngVPkq
The riscv64 cross leg has failed since 73a10e2 with error[E0425]: cannot find type `MEMORY_BASIC_INFORMATION` in this scope --> windows-sys-0.61.2/src/Windows/Win32/System/Memory/mod.rs:109 windows-sys was declared in the plain [dependencies] table, so it was built for every target. Its link! declarations expand anywhere, but the structs they name are defined only for the architectures Windows runs on. riscv64gc matches none of them, so once 73a10e2 enabled Win32_System_Memory, VirtualQuery and VirtualQueryEx referenced a type that never got defined. x64/arm64 Linux and macOS were unaffected only because their arch happens to be one Windows supports, and they compiled the crate as dead weight. Move it to [target.'cfg(target_os = "windows")'.dependencies]. Both consumers are already gated (thread_affinity.rs behind #[cfg(windows)], ppmem's map_windows.rs via #[cfg_attr(windows, path = ...)]), so nothing off-Windows referenced it. The Windows graph keeps the direct edge and all five Win32_* features; every non-Windows target drops the crate entirely. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vw17TVNLNCrcnmYUngVPkq
Every checkout step fell back to a hardcoded 'main' when build_branch was empty, so dispatching the workflow from a topic branch ran that branch's YAML against main's source. Testing a source fix on a branch silently built the unfixed code, and the run looked like the fix had not worked. Fall back to github.ref_name instead: dispatching from a topic branch builds that branch, dispatching from main builds main, and build_branch still overrides both. Also normalises the remaining `github.event.inputs.*` reads to `inputs.*`. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vw17TVNLNCrcnmYUngVPkq
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Secrets: release.yml needs the five MACOS_* ones (optional — without them macOS is ad-hoc signed and not notarized, other platforms unaffected); appstore.yml needs the eight APP_STORE_* ones (required, and the App Store Connect key must have the App Manager role — Developer authenticates but 403s on upload). All are already set on this repo.
Verified in my fork, there may be bugs/quirks related to secrets which I will sort out (shouldn't need any other code changes, just secrets).