Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 19 additions & 10 deletions .github/workflows/nightly-dmg.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ on:
- cron: '0 4 * * *'
workflow_dispatch:
inputs:
version:
description: 'Version to bake into Info.plist and artifact names (defaults to nightly 150.0.1)'
release_version:
description: 'BearBrowser release version to bake into Info.plist + artifact filename (upstream Firefox version stays pinned at 150.0.1). Defaults to nightly.'
required: false
default: '150.0.1'
default: ''
type: string
push:
branches: [main]
Expand All @@ -30,11 +30,15 @@ jobs:

env:
MOZBUILD_STATE_PATH: ${{ github.workspace }}/.mozbuild
# A workflow_dispatch input overrides the nightly default; every other
# trigger (schedule, push) still ships a dev-versioned artifact. This
# closes the "release artifacts carry nightly version 150.0.1" root
# cause behind the plist-version-equals-tag gate rejection.
VERSION: ${{ inputs.version || '150.0.1' }}
# VERSION = pinned UPSTREAM Firefox tarball we build on (workspace paths,
# cache keys, tarball URL). Never overridden — the upstream source is
# what it is.
VERSION: 150.0.1
# BEARBROWSER_VERSION = what we call OUR release. Baked into Info.plist
# via prepare-macos-app-bundle.sh's --version arg and into the artifact
# filename. workflow_dispatch input overrides for release cuts; every
# other trigger falls back to VERSION so nightlies keep dev semantics.
BEARBROWSER_VERSION: ${{ inputs.release_version != '' && inputs.release_version || '150.0.1' }}
RELEASE: 1
PROFILE: human-secure

Expand Down Expand Up @@ -199,11 +203,13 @@ jobs:

- name: Package BearBrowser.app
run: |
# --version is the RELEASE version baked into Info.plist, NOT the
# upstream Firefox tarball version (which stays pinned via VERSION).
bash scripts/bearbrowser-package-source-build.sh \
--workspace build/workspaces/${{ env.PROFILE }}-${{ env.VERSION }}-${{ env.RELEASE }}/source/bearbrowser-${{ env.VERSION }}-${{ env.RELEASE }} \
--profile ${{ env.PROFILE }} \
--out-dir build/nightly \
--version ${{ env.VERSION }} \
--version ${{ env.BEARBROWSER_VERSION }} \
--skip-verify

- name: Verify the package carries the hardening (gate)
Expand All @@ -227,7 +233,10 @@ jobs:
id: dmg
run: |
DATE=$(date +%Y%m%d)
DMG="BearBrowser-${{ env.VERSION }}-${DATE}-dev.dmg"
# Filename uses the RELEASE version (BEARBROWSER_VERSION), not the
# Firefox upstream version, so a release cut produces a correctly-
# named artifact ready for `gh release create v<version>`.
DMG="BearBrowser-${{ env.BEARBROWSER_VERSION }}-${DATE}-dev.dmg"
hdiutil create \
-volname "BearBrowser" \
-srcfolder "build/nightly/BearBrowser.app" \
Expand Down
26 changes: 16 additions & 10 deletions .github/workflows/nightly-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ on:
- cron: '0 5 * * *'
workflow_dispatch:
inputs:
version:
description: 'Version to bake into artifact names + Info metadata (defaults to nightly 150.0.1)'
release_version:
description: 'BearBrowser release version to bake into artifact filename (upstream Firefox version stays pinned at 150.0.1). Defaults to nightly.'
required: false
default: '150.0.1'
default: ''
type: string
push:
# anti-fingerprint-verify added so the compile can be triggered on this branch
Expand Down Expand Up @@ -75,10 +75,13 @@ jobs:

env:
MOZBUILD_STATE_PATH: ${{ github.workspace }}/.mozbuild
# workflow_dispatch input overrides for release cuts; other triggers get
# the nightly default. Root cause of the "release ships nightly version"
# bug that promotion-gate now catches.
VERSION: ${{ inputs.version || '150.0.1' }}
# VERSION = pinned UPSTREAM Firefox tarball (workspace paths, cache
# keys, tarball URL). Never overridden — the upstream source is what
# it is.
VERSION: 150.0.1
# BEARBROWSER_VERSION = what we ship as. Baked into the tarball
# filename. workflow_dispatch input overrides for release cuts.
BEARBROWSER_VERSION: ${{ inputs.release_version != '' && inputs.release_version || '150.0.1' }}
RELEASE: 1
PROFILE: human-secure

Expand Down Expand Up @@ -234,7 +237,10 @@ jobs:
# filter lists / substitutions / stripped prefs must not ship.
bash scripts/verify-package.sh "$OBJ/dist/bearbrowser"

TAR="BearBrowser-${{ env.VERSION }}-${DATE}-${{ matrix.artifact_suffix }}.tar.xz"
# Filename uses the RELEASE version (BEARBROWSER_VERSION), not the
# Firefox upstream version, so release cuts produce correctly-named
# artifacts ready for `gh release create v<version>`.
TAR="BearBrowser-${{ env.BEARBROWSER_VERSION }}-${DATE}-${{ matrix.artifact_suffix }}.tar.xz"
mkdir -p build/nightly
tar -C "$OBJ/dist" -cJf "build/nightly/${TAR}" bearbrowser
echo "name=${TAR}" >> $GITHUB_OUTPUT
Expand All @@ -247,8 +253,8 @@ jobs:
bash scripts/package-linux-appimage.sh \
--workspace "build/workspaces/${{ env.PROFILE }}-${{ env.VERSION }}-${{ env.RELEASE }}/source/bearbrowser-${{ env.VERSION }}-${{ env.RELEASE }}" \
--out-dir build/nightly \
--version ${{ env.VERSION }} || echo "AppImage packaging non-fatal" >&2
APPIMG="BearBrowser-${{ env.VERSION }}-${DATE}-${{ matrix.appimage_suffix }}.AppImage"
--version ${{ env.BEARBROWSER_VERSION }} || echo "AppImage packaging non-fatal" >&2
APPIMG="BearBrowser-${{ env.BEARBROWSER_VERSION }}-${DATE}-${{ matrix.appimage_suffix }}.AppImage"
[ -f "build/nightly/${APPIMG}" ] && echo "name=${APPIMG}" >> $GITHUB_OUTPUT && echo "path=build/nightly/${APPIMG}" >> $GITHUB_OUTPUT || true

- name: Upload tarball artifact
Expand Down
Loading