Files
desktop/.github/workflows/windows-profile-build.yml
mr. m 37eed5fcfe fix: Start working on more eslint rules, p=#11874
* fix: Start working on more eslint rules, b=no-bug, c=common, mods, workspaces

* chore: Continue migration, b=no-bug, c=workflows, windows, glance, mods, welcome, workspaces, common, compact-mode, folders, tests, kbs, media, split-view, tabs

* chore: Finish, b=no-bug, c=common, compact-mode, folders, glance, tests, kbs, media, mods, split-view, tabs, workspaces, welcome

* fix: Fix installing deps, b=no-bug, c=common

* feat: Dont initialize git on download checks, b=no-bug, c=workflows

* feat: Remove empty JS docs, b=no-bug, c=common, compact-mode, folders, glance, kbs, media, mods, split-view, tabs, tests, workspaces

* chore: Run lint, b=no-bug, c=common, folders, glance, kbs, mods, split-view, tabs, workspaces
2026-01-12 15:11:43 +01:00

116 lines
3.8 KiB
YAML

name: Windows PGO Builds
permissions:
contents: read
on:
workflow_call:
inputs:
build-version:
description: "The version to build"
required: true
type: string
profile-data-path-archive:
description: "The path to the zip archive containing the profile data"
required: false
type: string
release-branch:
description: "The branch to build"
required: true
type: string
jobs:
windows-profile-build:
name: |
Windows Profile Build - ${{ matrix.arch }}
strategy:
fail-fast: false
matrix:
arch: [x86_64, aarch64]
runs-on: ${{ inputs.release-branch == 'release' && 'windows-latest' || 'windows-latest' }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
- name: Setup Git
run: |
git config --global user.email "mauro-balades@users.noreply.github.com"
git config --global user.name "mauro-balades"
- name: Install Surfer
run: npm i -g @zen-browser/surfer
- name: Load Surfer CI setup
run: npm run surfer -- ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
- name: Download artifact
if: ${{ matrix.arch == 'x86_64' }}
uses: actions/download-artifact@v4
with:
path: C:\artifact
name: ${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}-zen-windows-profile-data-and-jarlog.zip
- name: Unpack artifact
if: ${{ matrix.arch == 'x86_64' }}
run: |
cd C:\artifact
ls
Expand-Archive -Path .\${{ inputs.profile-data-path-archive }} -DestinationPath C:\artifact
ls
- name: Setup
run: |
(New-Object System.Net.WebClient).DownloadFile("https://ftp.mozilla.org/pub/mozilla/libraries/win32/MozillaBuildSetup-Latest.exe", "C:\MozillaBuildSetup-Latest.exe")
C:\MozillaBuildSetup-Latest.exe /S | out-null
- name: Download Firefox and dependencies
if: ${{ matrix.arch == 'x86_64' }}
run: |
git config --global core.safecrlf false
npm run download
- name: Import patches
if: ${{ matrix.arch == 'x86_64' }}
env:
SURFER_NO_BRANDING_PATCH: true
run: npm run import
- name: Generate
if: ${{ matrix.arch == 'x86_64' }}
run: |
ls
$Env:USE_MINTTY = "0"
$workspace_dir_current = [regex]::replace($env:GITHUB_WORKSPACE, "^([A-Z]):", { "/" + $args.value.Substring(0, 1).toLower() }) -replace "\\", "/"
$workspace_dir = $workspace_dir_current + "/engine"
echo $workspace_dir
echo "cd $workspace_dir" '' >> mozilla-build-run.sh
echo 'export PATH=/c/mozilla-build/msys2/usr/bin:$PATH' '' >> mozilla-build-run.sh
echo './mach --no-interactive bootstrap --application-choice browser' '' >> mozilla-build-run.sh
echo 'LLVM_PROFDATA=/c/Users/runneradmin/.mozbuild/clang/bin/llvm-profdata.exe JARLOG_FILE=en-US.log ./mach python build/pgo/profileserver.py --binary /c/artifact/zen/zen.exe' '' >> mozilla-build-run.sh
C:\mozilla-build\start-shell.bat $workspace_dir_current\mozilla-build-run.sh
- name: Move profile data
if: ${{ matrix.arch == 'x86_64' }}
run: |
dir
dir engine
mv engine/merged.profdata merged.profdata
mv engine/en-US.log en-US.log
- name: Upload artifacts
if: ${{ matrix.arch == 'x86_64' }}
uses: actions/upload-artifact@v4
with:
retention-days: 1
path: |
merged.profdata
en-US.log
name: windows-profdata-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}