Purge fork-unrunnable workflows, add desktop artifact builds on main - #10
Merged
Conversation
Every workflow in this fork now has to clear two bars: it runs on standard GitHub-hosted runners, and it needs no credentials beyond the automatic GITHUB_TOKEN. The fork's run history shows what the old set actually did here — 30+ consecutive scheduled Release runs cancelled after the 24h queue timeout because `blacksmith-*` labels never resolve, and the one push-triggered CI run on record went the same way. Deleted (needs credentials and/or Blacksmith runners): - release.yml (Cloudflare + Clerk + Apple + Azure + npm OIDC + release GitHub App; its 3-hourly nightly cron was pure noise here) - deploy-relay.yml (Cloudflare, PlanetScale, Axiom, Clerk, APNs; fired on every push to main) - mobile-eas-preview.yml, mobile-eas-production.yml (EXPO_TOKEN) - mobile-showcase-screenshots.yml (Blacksmith macOS/Linux runners) Deleted (upstream community governance, no value in a fork whose PRs are all authored by the owner and its agents), both on pull_request_target: - pr-vouch.yml + .github/VOUCHED.td (trust-gates external contributors against upstream's contributor list) - pr-size.yml (its sync-label-definitions job was dead code besides: `if: github.event_name != 'pull_request_target'` on a workflow whose only trigger is pull_request_target) Kept: ci.yml (already fork-adapted) and issue-labels.yml (GITHUB_TOKEN only, and it bootstraps the labels the issue forms apply — verified the labels API answers for this repo). Added desktop-artifacts.yml: builds the same four platforms upstream's release matrix covers — macOS arm64/x64 DMG, Linux x64 AppImage, Windows x64 NSIS — on every push to main and on dispatch, unsigned, uploaded as workflow artifacts with 14-day retention. It reuses upstream's build job minus everything credentialed, keeping the two secret-free pieces that matter: the Linux node-pty prebuild bundled into the Windows artifact (non-fatal when missing) and the Spectre-mitigated MSVC libs install. `--signed` is never passed, which is what keeps build-desktop-artifact.ts off the signing paths. Dropping release.yml also strands the guard in infra/relay/scripts/deploy.test.ts that read that file off disk — it would have failed `vp run test` — so it is removed with a note on restoring it. Docs that describe the deleted workflows (ci.md, release.md, mobile-app-store-screenshots.md, infra/relay/README.md) get fork notes rather than deletion, since they stay useful as upstream reference on rebases, and FORK.md section F records the standing rule so a rebase does not silently reintroduce a workflow that cannot run. All three remaining workflows pass actionlint with shellcheck enabled. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Uc2sbze61m6FQuyfkZBS9Y
`vp check` runs the formatter, and oxfmt rejected the new section F: an inline code span wrapped across a line boundary, so the continuation line got dedented to column 0. Reworded so the span stays on one line. Verified with oxfmt 0.57.0 (the version vp 0.2.2 ships) over every file this branch touches — all stable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Uc2sbze61m6FQuyfkZBS9Y
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.
What Changed
Reduced this fork's workflow set to what can actually run here, and added a build that produces desktop binaries on every push to
main.Kept (2):
ci.ymlissue-labels.ymlGITHUB_TOKENonly; bootstraps the labels.github/ISSUE_TEMPLATE/*.ymlapply. Verified the labels API answers for this repo.Added:
desktop-artifacts.yml— builds the same four platforms upstream's release matrix covers (macOSarm64/x64DMG, Linuxx64AppImage, Windowsx64NSIS) on every push tomainand on manual dispatch. Builds are unsigned and uploaded as workflow artifacts (14-day retention); nothing is published. It reuses upstream's build job minus everything credentialed, keeping the two secret-free pieces that matter: the Linuxnode-ptyprebuild bundled into the Windows artifact (non-fatal when missing, so a prebuild failure degrades that artifact instead of failing it) and the Spectre-mitigated MSVC libs install.--signedis never passed, which is what keepsscripts/build-desktop-artifact.tsoff the signing paths and makesCSC_IDENTITY_AUTO_DISCOVERY=false.Deleted — needs credentials and/or Blacksmith runners:
release.yml(Cloudflare + Clerk + Apple + Azure + npm OIDC + release GitHub App)deploy-relay.yml(Cloudflare, PlanetScale, Axiom, Clerk, APNs; fired on every push tomain)mobile-eas-preview.yml,mobile-eas-production.yml(EXPO_TOKEN)mobile-showcase-screenshots.yml(Blacksmith macOS/Linux runners)Deleted — upstream community governance, no value in a fork whose PRs are all authored by the owner and its agents (both on
pull_request_target):pr-vouch.yml+.github/VOUCHED.td— trust-gates external contributors against upstream's contributor listpr-size.yml— size labels; itssync-label-definitionsjob was dead code besides (if: github.event_name != 'pull_request_target'on a workflow whose only trigger ispull_request_target)Why
Every workflow here now has to clear two bars: standard GitHub-hosted runners, and no credentials beyond the automatic
GITHUB_TOKEN.The old set cleared neither. The fork's run history is the evidence: 30+ consecutive scheduled
Releaseruns cancelled after the 24h queue timeout (every 3 hours, forever) becauseblacksmith-*labels never resolve in this fork, and the single push-triggeredCIrun on record went the same way before the runner swap landed.deploy-relay.ymlfired on every push tomainfor a relay this fork does not deploy. None of it could ever go green, so it is deleted rather than disabled — a disabled workflow silently comes back on the next rebase.What was missing in exchange was the one thing a dev fork actually wants from CI: binaries.
desktop-artifacts.ymlfills that gap on the trigger requested — whenevermainupdates.Two follow-on edits that are part of the same change rather than scope creep:
release.ymlstranded therelease workflow tracing config propagationguard ininfra/relay/scripts/deploy.test.ts, which read that file off disk and would have failedvp run test. Removed, with a note on restoring it alongside the workflow.docs/operations/ci.md,release.md,mobile-app-store-screenshots.md,infra/relay/README.md) get fork notes instead of deletion — they stay useful as upstream reference on rebases.CONTRIBUTING.mdlost its now-falsevouch:*/size:*paragraph, andFORK.mdsection F records the standing rule so a rebase does not silently reintroduce a workflow that cannot run here.UI Changes
Not applicable.
Checklist
Verification
actionlintwith shellcheck enabled (exit 0).scripts/build-desktop-artifact.ts(--platform,--target,--arch,--wsl-prebuild,--verbose); build version is omitted so it falls back toserverPackageJson.version, as localdist:desktop:artifactruns do.x64cross-builds from thearm64runner the same way upstream does — the staged workspace pins pnpmsupportedArchitecturesfor the target arch.deploy.test.tsedit.workflow_dispatchneeds the file on the default branch. Worth watching that first run.Generated by Claude Code