nightly-{dmg,linux}: accept workflow_dispatch inputs.version for release cuts - #147
Merged
Merged
Conversation
Root cause behind 4 consecutive releases shipping with Info.plist stuck at 150.0.1: nightly workflows hardcoded VERSION=150.0.1 with no input override. Release cuts have been renaming nightly artifacts externally; the plist never matched the release tag. promotion-gate.yml (added in #142) now catches this on release publish — but the fix is to build with the correct version in the first place. Preserves: schedule + push triggers keep nightly semantics (dev version). Changes: manual workflow_dispatch can pass 'version: 150.0.6' to bake that into Info.plist + artifact filenames, so a release cut goes: 1. gh workflow run nightly-{dmg,linux}.yml -f version=150.0.6 2. wait for green 3. gh release create v150.0.6 <renamed artifacts> 4. promotion-gate.yml verifies plist == tag and lets latest.json publish
8 tasks
mdheller
added a commit
that referenced
this pull request
Aug 4, 2026
…ersion Root cause of PR #147's silent failure: env VERSION was conflated. It's used for workspace paths (build/workspaces/human-secure-VERSION-1/source), cache keys, and the upstream Firefox tarball URL — but I ALSO wired it to the Info.plist version + artifact filename. Passing version=150.0.6 made the workflow look for a workspace at build/…-150.0.6-1 that doesn't exist because Firefox source is pinned upstream at 150.0.1. Split into two envs: VERSION = pinned UPSTREAM Firefox tarball (150.0.1, immutable) BEARBROWSER_VERSION = what WE ship as (defaults to VERSION; override via workflow_dispatch input release_version) Release cut is now: gh workflow run nightly-dmg.yml --ref main -f release_version=150.0.6 gh workflow run nightly-linux.yml --ref main -f release_version=150.0.6 Workspace paths, cache, and Firefox source download all keep the pinned 150.0.1 they need. Packaging (--version arg) and artifact filenames use BEARBROWSER_VERSION. Nightly semantics preserved when no input passed.
mdheller
added a commit
that referenced
this pull request
Aug 4, 2026
…ersion (#148) Root cause of PR #147's silent failure: env VERSION was conflated. It's used for workspace paths (build/workspaces/human-secure-VERSION-1/source), cache keys, and the upstream Firefox tarball URL — but I ALSO wired it to the Info.plist version + artifact filename. Passing version=150.0.6 made the workflow look for a workspace at build/…-150.0.6-1 that doesn't exist because Firefox source is pinned upstream at 150.0.1. Split into two envs: VERSION = pinned UPSTREAM Firefox tarball (150.0.1, immutable) BEARBROWSER_VERSION = what WE ship as (defaults to VERSION; override via workflow_dispatch input release_version) Release cut is now: gh workflow run nightly-dmg.yml --ref main -f release_version=150.0.6 gh workflow run nightly-linux.yml --ref main -f release_version=150.0.6 Workspace paths, cache, and Firefox source download all keep the pinned 150.0.1 they need. Packaging (--version arg) and artifact filenames use BEARBROWSER_VERSION. Nightly semantics preserved when no input passed.
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.
Why
The plist-version-equals-tag check landed in #142 (promotion-gate.yml) surfaces the real root cause of 4 consecutive releases shipping with `Info.plist` stuck at 150.0.1: there is no release build. Nightlies hardcode `VERSION: 150.0.1` with no input override, and every release cut has been relabeling nightly artifacts externally. The plist never matched the release tag.
Change
Both `nightly-dmg.yml` and `nightly-linux.yml` now accept a `workflow_dispatch` input `version`:
```
gh workflow run nightly-dmg.yml --ref main -f version=150.0.6
gh workflow run nightly-linux.yml --ref main -f version=150.0.6
wait for both green
gh release create v150.0.6
promotion-gate.yml verifies plist == tag and lets latest.json publish
```
Adversarial-review checklist
Test plan
Can't test workflow_dispatch of a versioned nightly on the PR branch (default-branch limitation). Post-merge:
Blast radius
Additive — no existing trigger path changes behaviour. Existing scheduled nightlies keep shipping as `150.0.1-YYYYMMDD-dev`.