no-bug: Add more PGO training and enable clang plugins (gh-13325)

This commit is contained in:
mr. m
2026-04-20 22:21:06 +02:00
committed by GitHub
parent 6562610df1
commit f828d2eb20
22 changed files with 240 additions and 92 deletions

View File

@@ -34,7 +34,6 @@ jobs:
env:
SCCACHE_GHA_ENABLED: ${{ inputs.use-sccache && 'true' || 'false' }}
CARGO_TERM_COLOR: always
RUSTC_WRAPPER: ${{ inputs.use-sccache && 'sccache' || '' }}
CARGO_INCREMENTAL: 0
name: Build Linux - ${{ matrix.arch }}
@@ -120,6 +119,38 @@ jobs:
./mach --no-interactive bootstrap --application-choice browser
cd ..
- name: Build (PGO stage 1 - generate)
if: ${{ matrix.arch == 'x86_64' }}
env:
SURFER_COMPAT: ${{ matrix.arch }}
ZEN_RELEASE_BRANCH: ${{ inputs.release-branch }}
ZEN_GA_GENERATE_PROFILE: 1
ZEN_SAFEBROWSING_API_KEY: ${{ secrets.ZEN_SAFEBROWSING_API_KEY }}
ZEN_MOZILLA_API_KEY: ${{ secrets.ZEN_MOZILLA_API_KEY }}
ZEN_GOOGLE_LOCATION_SERVICE_API_KEY: ${{ secrets.ZEN_GOOGLE_LOCATION_SERVICE_API_KEY }}
continue-on-error: true
run: |
export SURFER_PLATFORM="linux"
if [[ -n ${{ inputs.MOZ_BUILD_DATE }} ]];then
export MOZ_BUILD_DATE=${{ inputs.MOZ_BUILD_DATE }}
fi
bash .github/workflows/src/release-build.sh
- name: Generate PGO profile data
if: ${{ matrix.arch == 'x86_64' }}
run: |
set -x
export DISPLAY=:2
export LLVM_PROFDATA="$HOME/.mozbuild/clang/bin/llvm-profdata"
export JARLOG_FILE=en-US.log
mkdir -p "$HOME/artifact"
cd engine
./mach python ../scripts/download_pgo_extended_corpus.py
./mach package
./mach python build/pgo/profileserver.py --extended-corpus ./pgo-extended-corpus
mv merged.profdata "$HOME/artifact/merged.profdata"
mv en-US.log "$HOME/artifact/en-US.log"
- name: Build
env:
SURFER_COMPAT: ${{ matrix.arch }}

View File

@@ -35,7 +35,6 @@ jobs:
env:
SCCACHE_GHA_ENABLED: ${{ inputs.use-sccache && 'true' || 'false' }}
CARGO_TERM_COLOR: always
RUSTC_WRAPPER: ${{ inputs.use-sccache && 'sccache' || '' }}
CARGO_INCREMENTAL: 0
steps:
- name: Checkout repository
@@ -134,6 +133,36 @@ jobs:
- name: Build language packs
run: sh scripts/download-language-packs.sh
- name: Build Zen (PGO stage 1 - generate)
env:
SURFER_COMPAT: ${{ matrix.arch }}
ZEN_RELEASE_BRANCH: ${{ inputs.release-branch }}
ZEN_GA_GENERATE_PROFILE: 1
ZEN_SAFEBROWSING_API_KEY: ${{ secrets.ZEN_SAFEBROWSING_API_KEY }}
ZEN_MOZILLA_API_KEY: ${{ secrets.ZEN_MOZILLA_API_KEY }}
ZEN_GOOGLE_LOCATION_SERVICE_API_KEY: ${{ secrets.ZEN_GOOGLE_LOCATION_SERVICE_API_KEY }}
run: |
export SURFER_PLATFORM="darwin"
if [[ -n ${{ inputs.MOZ_BUILD_DATE }} ]];then
export MOZ_BUILD_DATE=${{ inputs.MOZ_BUILD_DATE }}
fi
bash .github/workflows/src/release-build.sh
- name: Generate PGO profile data
env:
SURFER_COMPAT: ${{ matrix.arch }}
run: |
set -x
export LLVM_PROFDATA="$HOME/.mozbuild/clang/bin/llvm-profdata"
export JARLOG_FILE=en-US.log
mkdir -p "$HOME/artifact"
cd engine
./mach python ../scripts/download_pgo_extended_corpus.py
./mach package
./mach python build/pgo/profileserver.py --extended-corpus ./pgo-extended-corpus
mv merged.profdata "$HOME/artifact/merged.profdata"
mv en-US.log "$HOME/artifact/en-US.log"
- name: Build Zen
env:
SURFER_COMPAT: ${{ matrix.arch }}

View File

@@ -93,6 +93,7 @@ jobs:
env:
SURFER_MOZCONFIG_ONLY: true
ZEN_RELEASE: 1
ZEN_GA_DISABLE_PGO: true
run: |
npm run build
cd engine
@@ -232,6 +233,7 @@ jobs:
- name: Package for mar
env:
JUST_MAR: true
ZEN_GA_DISABLE_PGO: true
run: |
# we don't need it anymore
set -ex

View File

@@ -20,7 +20,7 @@ jobs:
with:
create_release: ${{ github.event_name != 'workflow_dispatch' && true || inputs.create_release }}
update_branch: twilight
use-sccache: false
use-sccache: true
update_version: false
post-build:

View File

@@ -93,7 +93,8 @@ jobs:
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
echo './mach python ../scripts/download_pgo_extended_corpus.py' '' >> 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 --extended-corpus ./pgo-extended-corpus --' '' >> mozilla-build-run.sh
C:\mozilla-build\start-shell.bat $workspace_dir_current\mozilla-build-run.sh
- name: Move profile data

View File

@@ -39,7 +39,6 @@ jobs:
env:
SCCACHE_GHA_ENABLED: ${{ inputs.use-sccache && 'true' || 'false' }}
CARGO_TERM_COLOR: always
RUSTC_WRAPPER: ${{ inputs.use-sccache && 'sccache' || '' }}
CARGO_INCREMENTAL: 0
strategy:
fail-fast: false