Merge pull request #3135 from omove/arm64-testing

Linux/Windows ARM64 Builds
This commit is contained in:
mr. m
2024-11-23 21:56:22 +01:00
committed by GitHub
10 changed files with 199 additions and 121 deletions

View File

@@ -115,7 +115,8 @@ jobs:
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: Install dependencies
run: pnpm install
run: |
pnpm install
- name: Setup Surfer
run: |
@@ -176,7 +177,8 @@ jobs:
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: Install dependencies
run: pnpm install
run: |
pnpm install
- name: Setup surfer
run: |
@@ -231,7 +233,8 @@ jobs:
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: Install dependencies
run: pnpm install
run: |
pnpm install
- name: Load surfer CI setup
run: pnpm surfer ci --brand ${{ inputs.update_branch }} --display-version ${{ needs.build-data.outputs.version }}
@@ -265,7 +268,7 @@ jobs:
with:
build-version: ${{ needs.build-data.outputs.version }}
generate-gpo: true
profile-data-path-archive: zen-windows-x86_64-profile-data-and-jarlog.zip
profile-data-path-archive: zen-windows-profile-data-and-jarlog.zip
release-branch: ${{ inputs.update_branch }}
windows-step-2:
@@ -315,13 +318,13 @@ jobs:
release-branch: ${{ inputs.update_branch }}
appimage:
name: AppImage build - Linux ${{ matrix.generic == true && 'generic' || 'specific' }}
name: AppImage build - Linux ${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}
permissions:
contents: write
runs-on: ubuntu-latest
strategy:
matrix:
generic: [true, false]
arch: [x86_64, x86_64-v3, aarch64]
needs: [linux]
steps:
- name: Install Node.js
@@ -343,7 +346,7 @@ jobs:
- name: Download linux build
uses: actions/download-artifact@v4
with:
name: zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2
name: zen.linux-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}.tar.bz2
- name: Execute AppImage build
run: |
@@ -367,23 +370,23 @@ jobs:
ls -al
find .
ls -al "$APPDIR"
ARCH=x86_64 ./appimagetool-x86_64.AppImage --comp zstd --mksquashfs-opt -Xcompression-level --mksquashfs-opt 10 \
-u "gh-releases-zsync|$GITHUB_REPOSITORY_OWNER|desktop|latest|zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage.zsync" \
"$APPDIR" zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage
ARCH=${{ matrix.arch == 'aarch64' && 'aarch64' || 'x86_64' }} ./appimagetool-x86_64.AppImage --comp zstd --mksquashfs-opt -Xcompression-level --mksquashfs-opt 10 \
-u "gh-releases-zsync|$GITHUB_REPOSITORY_OWNER|desktop|latest|zen-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}.AppImage.zsync" \
"$APPDIR" zen-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}.AppImage
mkdir dist
mv zen*AppImage* dist/.
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage
path: ./dist/zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage
name: zen-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}.AppImage
path: ./dist/zen-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}.AppImage
- name: Upload artifact (ZSync)
uses: actions/upload-artifact@v4
with:
name: zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage.zsync
path: ./dist/zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage.zsync
name: zen-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}.AppImage.zsync
path: ./dist/zen-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}.AppImage.zsync
release:
if: ${{ inputs.create_release || inputs.update_branch == 'twilight' }}
@@ -432,9 +435,11 @@ jobs:
if [[ $RELEASE_BRANCH == 'alpha' ]]; then
cp -a ../.github/workflows/object/windows-x64-signed-generic/update_manifest/. updates/
cp -a ../.github/workflows/object/windows-x64-signed-specific/update_manifest/. updates/
cp -a ../.github/workflows/object/windows-x64-signed-arm64/update_manifest/. updates/
else
cp -a ../windows_update_manifest_generic/. updates/
cp -a ../windows_update_manifest_specific/. updates/
cp -a ../windows_update_manifest_arm64/. updates/
fi
cp -a ../macos_update_manifest_aarch64/. updates/
@@ -456,20 +461,26 @@ jobs:
zen.source.tar.gz
zen.linux-generic.tar.bz2
zen.linux-specific.tar.bz2
zen.linux-aarch64.tar.bz2
zen-generic.AppImage
zen-generic.AppImage.zsync
zen-specific.AppImage
zen-specific.AppImage.zsync
zen-aarch64.AppImage
zen-aarch64.AppImage.zsync
zen.win-generic.zip
zen.win-specific.zip
linux.mar
linux-generic.mar
linux-aarch64.mar
windows-generic.mar
windows.mar
windows-arm64.mar
macos-x64.mar
macos-aarch64.mar
zen.installer.exe
zen.installer-generic.exe
zen.installer-arm64.exe
zen.macos-x64.dmg
zen.macos-aarch64.dmg
automatic_release_tag: 'twilight'
@@ -492,20 +503,27 @@ jobs:
zen.source.tar.gz
zen.linux-generic.tar.bz2
zen.linux-specific.tar.bz2
zen.linux-aarch64.tar.bz2
zen-generic.AppImage
zen-generic.AppImage.zsync
zen-specific.AppImage
zen-specific.AppImage.zsync
zen-aarch64.AppImage
zen-aarch64.AppImage.zsync
.github/workflows/object/windows-x64-signed-generic/zen.win-generic.zip
.github/workflows/object/windows-x64-signed-specific/zen.win-specific.zip
.github/workflows/object/windows-x64-signed-arm64/zen.win-arm64.zip
linux.mar
linux-generic.mar
linux-aarch64.mar
.github/workflows/object/windows-x64-signed-generic/windows-generic.mar
.github/workflows/object/windows-x64-signed-specific/windows.mar
.github/workflows/object/windows-x64-signed-arm64/windows-arm64.mar
macos-x64.mar
macos-aarch64.mar
.github/workflows/object/windows-x64-signed-specific/zen.installer.exe
.github/workflows/object/windows-x64-signed-generic/zen.installer-generic.exe
.github/workflows/object/windows-x64-signed-arm64/zen.installer-arm64.exe
zen.macos-x64.dmg
zen.macos-aarch64.dmg

View File

@@ -20,8 +20,8 @@ jobs:
strategy:
fail-fast: false
matrix:
generic: [true, false]
name: Build Linux - ${{ matrix.generic == true && 'Generic' || 'Specific' }}
arch: [x86_64, x86_64-v3, aarch64]
name: Build Linux - ${{ matrix.arch == 'x86_64' && 'Generic' || matrix.arch == 'x86_64-v3' && 'Specific' || matrix.arch == 'aarch64' && 'aarch64' }}
steps:
- name: Free Disk Space (Ubuntu)
@@ -88,7 +88,8 @@ jobs:
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: Install dependencies
run: pnpm install
run: |
pnpm install
- name: Load surfer CI setup
run: pnpm surfer ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
@@ -102,9 +103,15 @@ jobs:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.79
source $HOME/.cargo/env
if test "${{ matrix.arch }}" = "aarch64"; then
rustup target add aarch64-unknown-linux-gnu
else
rustup target add x86_64-unknown-linux-gnu
fi
- name: Import
env:
SURFER_COMPAT: ${{ matrix.generic == true }}
SURFER_COMPAT: ${{ matrix.arch }}
run: pnpm surfer import
- name: Build language packs
@@ -113,45 +120,52 @@ jobs:
- name: Bootstrap
run: |
cd engine
export SURFER_PLATFORM="linux"
./mach --no-interactive bootstrap --application-choice browser
cd ..
- name: Build
env:
SURFER_COMPAT: ${{ matrix.generic == true }}
SURFER_COMPAT: ${{ matrix.arch }}
continue-on-error: true
run: sh .github/workflows/src/release-build.sh
run: |
export SURFER_PLATFORM="linux"
sh .github/workflows/src/release-build.sh
- name: Build again if it failed
if: failure()
env:
SURFER_COMPAT: ${{ matrix.generic == true }}
run: sh .github/workflows/src/release-build.sh
SURFER_COMPAT: ${{ matrix.arch }}
run: |
export SURFER_PLATFORM="linux"
sh .github/workflows/src/release-build.sh
- name: Package
env:
SURFER_COMPAT: ${{ matrix.generic == true }}
run: pnpm package
SURFER_COMPAT: ${{ matrix.arch }}
run: |
export SURFER_PLATFORM="linux"
pnpm package
- name: Rename artifacts
run: |
mv dist/zen-*.tar.bz2 "zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2"
mv dist/output.mar linux${{ matrix.generic == true && '-generic' || '' }}.mar
mv dist/zen-*.tar.bz2 "zen.linux-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}.tar.bz2"
mv dist/output.mar linux${{ matrix.arch == 'x86_64' && '-generic' || matrix.arch == 'aarch64' && '-aarch64' || '' }}.mar
- name: Upload binary
uses: actions/upload-artifact@v4
with:
name: zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2
path: ./zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2
name: zen.linux-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}.tar.bz2
path: ./zen.linux-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}.tar.bz2
- name: Upload mar
uses: actions/upload-artifact@v4
with:
name: linux${{ matrix.generic == true && '-generic' || '' }}.mar
path: ./linux${{ matrix.generic == true && '-generic' || '' }}.mar
name: linux${{ matrix.arch == 'x86_64' && '-generic' || matrix.arch == 'aarch64' && '-aarch64' || '' }}.mar
path: ./linux${{ matrix.arch == 'x86_64' && '-generic' || matrix.arch == 'aarch64' && '-aarch64' || '' }}.mar
- name: Upload update manifests
uses: actions/upload-artifact@v4
with:
name: linux_update_manifest_${{ matrix.generic == true && 'generic' || 'specific' }}
name: linux_update_manifest_${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'aarch64' }}
path: ./dist/update

View File

@@ -22,7 +22,7 @@ jobs:
include:
- arch: aarch64
os: macos-14
- arch: x64
- arch: x86_64
os: macos-13
steps:
@@ -94,7 +94,9 @@ jobs:
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: Install dependencies
run: pnpm install
run: |
pnpm install
- name: Load surfer CI setup
run: pnpm surfer ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
@@ -104,13 +106,14 @@ jobs:
- name: Bootstrap
run: |
cd engine
export SURFER_PLATFORM="darwin"
export PATH="$(python3 -m site --user-base)/bin":$PATH
./mach --no-interactive bootstrap --application-choice browser --no-system-changes
cd ..
- name: Import
env:
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
SURFER_COMPAT: ${{ matrix.arch }}
run: |
pnpm surfer import --verbose
@@ -119,16 +122,19 @@ jobs:
- name: build Zen
env:
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
SURFER_COMPAT: ${{ matrix.arch }}
run: |
if test "${{ matrix.arch }}" = "x64"; then
export SURFER_PLATFORM="darwin"
if test "${{ matrix.arch }}" = "x86_64"; then
export ZEN_DISABLE_LTO=1
fi
sh .github/workflows/src/release-build.sh
- name: Rebuild Zen if failed
if: failure()
run: sh .github/workflows/src/release-build.sh
run: |
export SURFER_PLATFORM="darwin"
sh .github/workflows/src/release-build.sh
- name: import APPLE DEVELOPER ID CERTIFICATE for .app
uses: apple-actions/import-codesign-certs@v3
@@ -138,8 +144,9 @@ jobs:
- name: Package
env:
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
SURFER_COMPAT: ${{ matrix.arch }}
run: |
export SURFER_PLATFORM="darwin"
export MACOS_APPLE_DEVELOPER_ID="${{ secrets.macOS_AppleDeveloperId }}"
pnpm package

View File

@@ -17,11 +17,11 @@ on:
jobs:
windows-profile-build:
name: Windows Profile Build - ${{ matrix.generic == true && 'generic' || 'specific' }}
name: Windows Profile Build - ${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'arm64' }}
strategy:
fail-fast: false
matrix:
generic: [true, false]
arch: [x86_64, x86_64-v3, aarch64]
runs-on: windows-latest
# Script edited from https://github.com/Floorp-Projects/Floorp/blob/ESR115/.github/workflows/window-generate-profile-data-and-jarlog.yml
steps:
@@ -47,7 +47,7 @@ jobs:
name: Download artifact
with:
path: C:\artifact
name: ${{ matrix.generic == true && 'generic' || 'specific' }}-zen-windows-x86_64-profile-data-and-jarlog.zip
name: ${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'generic' }}-zen-windows-profile-data-and-jarlog.zip
- name: Unpack artifact
run: |
@@ -101,4 +101,4 @@ jobs:
path: |
merged.profdata
en-US.log
name: windows-profdata-${{ matrix.generic == true && 'generic' || 'specific' }}
name: windows-profdata-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'arm64' }}

View File

@@ -20,12 +20,12 @@ on:
jobs:
windows-build:
name: Build Windows - ${{ matrix.generic == true && 'Generic' || 'Specific' }}
name: Build Windows - ${{ matrix.arch == 'x86_64' && 'Generic' || matrix.arch == 'x86_64-v3' && 'Specific' || matrix.arch == 'aarch64' && 'ARM64' }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
generic: [true, false]
arch: [x86_64, x86_64-v3, aarch64]
steps:
- name: Free Disk Space (Ubuntu)
@@ -55,7 +55,7 @@ jobs:
- name: Install dependencies
run: |
pnpm i
pnpm install
- name: Load surfer CI setup
run: pnpm surfer ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
@@ -125,7 +125,11 @@ jobs:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.79
source $HOME/.cargo/env
rustup target add x86_64-pc-windows-msvc
if test "${{ matrix.arch }}" = "aarch64"; then
rustup target add aarch64-pc-windows-msvc
else
rustup target add x86_64-pc-windows-msvc
fi
cargo install cargo-download
cargo download -x windows=0.58.0
#? https://github.com/mozilla/sccache#known-caveats
@@ -136,7 +140,7 @@ jobs:
- name: Import
env:
SURFER_COMPAT: ${{ matrix.generic == true }}
SURFER_COMPAT: ${{ matrix.arch }}
run: pnpm surfer import --verbose
- name: Build language packs
@@ -147,7 +151,7 @@ jobs:
if: ${{ !inputs.generate-gpo }}
with:
path: ~/artifact
name: windows-profdata-${{ matrix.generic == true && 'generic' || 'specific' }}
name: windows-profdata-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'arm64' }}
- name: Show artifact info
if: ${{ !inputs.generate-gpo }}
@@ -161,7 +165,7 @@ jobs:
- name: Build
env:
SURFER_COMPAT: ${{ matrix.generic == true }}
SURFER_COMPAT: ${{ matrix.arch }}
run: |
set -x
dos2unix configs/windows/mozconfig
@@ -174,12 +178,12 @@ jobs:
- name: Package
env:
SURFER_COMPAT: ${{ matrix.generic == true }}
SURFER_COMPAT: ${{ matrix.arch }}
run: |
set -x
export SURFER_PLATFORM="win32"
pnpm package
mv ./dist/zen-$(pnpm surfer get version | xargs).en-US.win64.zip zen.win64.zip
mv ./dist/zen-$(pnpm surfer get version | xargs).en-US.win64${{ matrix.arch == 'aarch64' && '-aarch64' || '' }}.zip zen.win64.zip
ls ./dist
ls .
@@ -197,55 +201,60 @@ jobs:
- name: Rename artifacts
if: ${{ !inputs.generate-gpo }}
run: |
mv ./zen.win64.zip zen.win-${{ matrix.generic == true && 'generic' || 'specific' }}.zip
mv ./dist/output.mar windows${{ matrix.generic == true && '-generic' || '' }}.mar
mv ./dist/zen.installer.exe ./zen.installer${{ matrix.generic == true && '-generic' || '' }}.exe
mv ./zen.win64.zip zen.win-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'arm64' }}.zip
mv ./dist/output.mar windows${{ matrix.arch == 'x86_64' && '-generic' || matrix.arch == 'aarch64' && '-arm64' || '' }}.mar
mv ./dist/zen.installer.exe ./zen.installer${{ matrix.arch == 'x86_64' && '-generic' || matrix.arch == 'aarch64' && '-arm64' || '' }}.exe
- name: Upload PGO build
uses: actions/upload-artifact@v4
if: ${{ inputs.generate-gpo }}
with:
name: ${{ matrix.generic == true && 'generic' || 'specific' }}-${{ inputs.profile-data-path-archive }}
name: ${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'arm64' }}-${{ inputs.profile-data-path-archive }}
path: ./zen.win64-pgo-stage-1.zip
- name: Remove unnecessary files from obj
if: ${{ !inputs.generate-gpo }}
run: |
set -x
find engine/obj-x86_64-pc-windows-msvc/ -mindepth 1 -maxdepth 1 -type d -not -name 'dist' -exec rm -rf {} \;
find engine/obj-x86_64-pc-windows-msvc/ -mindepth 1 -maxdepth 1 -type f -not -name 'dist' -exec rm -f {} \;
if test "${{ matrix.arch }}" = "aarch64"; then
find engine/obj-aarch64-pc-windows-msvc/ -mindepth 1 -maxdepth 1 -type d -not -name 'dist' -exec rm -rf {} \;
find engine/obj-aarch64-pc-windows-msvc/ -mindepth 1 -maxdepth 1 -type f -not -name 'dist' -exec rm -f {} \;
else
find engine/obj-x86_64-pc-windows-msvc/ -mindepth 1 -maxdepth 1 -type d -not -name 'dist' -exec rm -rf {} \;
find engine/obj-x86_64-pc-windows-msvc/ -mindepth 1 -maxdepth 1 -type f -not -name 'dist' -exec rm -f {} \;
fi
- name: Upload dist object
if: ${{ !inputs.generate-gpo }}
uses: actions/upload-artifact@v4
with:
name: windows-x64-obj-${{ matrix.generic == true && 'generic' || 'specific' }}
path: engine/obj-x86_64-pc-windows-msvc/
name: windows-x64-obj-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'arm64' }}
path: engine/obj-${{ matrix.arch == 'aarch64' && 'aarch64' || 'x86_64' }}-pc-windows-msvc/
- name: Upload zip file if twilight branch
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
uses: actions/upload-artifact@v4
with:
name: zen.win-${{ matrix.generic == true && 'generic' || 'specific' }}.zip
path: ./zen.win-${{ matrix.generic == true && 'generic' || 'specific' }}.zip
name: zen.win-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'arm64' }}.zip
path: ./zen.win-${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'arm64' }}.zip
- name: Upload installer if twilight branch
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
uses: actions/upload-artifact@v4
with:
name: zen.installer${{ matrix.generic == true && '-generic' || '' }}.exe
path: ./zen.installer${{ matrix.generic == true && '-generic' || '' }}.exe
name: zen.installer${{ matrix.arch == 'x86_64' && '-generic' || matrix.arch == 'aarch64' && '-arm64' || '' }}.exe
path: ./zen.installer${{ matrix.arch == 'x86_64' && '-generic' || matrix.arch == 'aarch64' && '-arm64' || '' }}.exe
- name: Upload mar if twilight branch
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
uses: actions/upload-artifact@v4
with:
name: windows${{ matrix.generic == true && '-generic' || '' }}.mar
path: ./windows${{ matrix.generic == true && '-generic' || '' }}.mar
name: windows${{ matrix.arch == 'x86_64' && '-generic' || matrix.arch == 'aarch64' && '-arm64' || '' }}.mar
path: ./windows${{ matrix.arch == 'x86_64' && '-generic' || matrix.arch == 'aarch64' && '-arm64' || '' }}.mar
- name: Upload update manifests if twilight branch
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
uses: actions/upload-artifact@v4
with:
name: windows_update_manifest_${{ matrix.generic == true && 'generic' || 'specific' }}
name: windows_update_manifest_${{ matrix.arch == 'x86_64' && 'generic' || matrix.arch == 'x86_64-v3' && 'specific' || matrix.arch == 'aarch64' && 'arm64' }}
path: ./dist/update

View File

@@ -89,7 +89,6 @@ ac_add_options --enable-raw
ac_add_options --enable-webrtc
ac_add_options --enable-jxl
ac_add_options --enable-av1
ac_add_options --enable-eme=widevine
ac_add_options --with-unsigned-addon-scopes=app,system

View File

@@ -7,6 +7,59 @@ else
export CXX=clang++
fi
if test "$SURFER_COMPAT" = "x86_64"; then
ac_add_options --target=x86_64-pc-linux
ac_add_options --enable-eme=widevine
# Enable Profile Guided Optimization
export MOZ_PGO=1
ac_add_options MOZ_PGO=1
# Optimization flags for SURFER_COMPAT
ac_add_options --enable-optimize="-O3 -march=x86-64"
export CFLAGS="$CFLAGS -O3 -ffp-contract=fast -march=x86-64"
export CPPFLAGS="$CPPFLAGS -O3 -ffp-contract=fast -march=x86-64"
export CXXFLAGS="$CXXFLAGS -O3 -flto=thin -ffp-contract=fast -march=x86-64"
export LDFLAGS="$LDFLAGS -Wl,-O3 -Wl,-mllvm,-fp-contract=fast -march=x86-64"
export RUSTFLAGS="$RUSTFLAGS -C target-cpu=x86-64 -C codegen-units=1 -Clink-args=--icf=safe"
elif test "$SURFER_COMPAT" = "aarch64"; then
ac_add_options --target=aarch64-linux-gnu
ac_add_options --enable-optimize="-O3"
export CFLAGS="$CFLAGS -O3"
export CPPFLAGS="$CPPFLAGS -O3"
export CXXFLAGS="$CXXFLAGS -O3"
export LDFLAGS="$LDFLAGS -Wl,-O3"
export RUSTFLAGS="$RUSTFLAGS -C codegen-units=1 -Clink-args=--icf=safe"
else
ac_add_options --target=x86_64-pc-linux
ac_add_options --enable-eme=widevine
# Enable Profile Guided Optimization
export MOZ_PGO=1
ac_add_options MOZ_PGO=1
# Optimization flags for general release
ac_add_options --enable-wasm-avx
ac_add_options --enable-optimize="-O3 -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -mpopcnt -mpclmul"
export CFLAGS="$CFLAGS -O3 -ffp-contract=fast -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -mfma -maes -mpopcnt -mpclmul"
export CPPFLAGS="$CPPFLAGS -O3 -ffp-contract=fast -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -mfma -maes -mpopcnt -mpclmul"
export CXXFLAGS="$CXXFLAGS -O3 -flto=thin -ffp-contract=fast -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -mfma -maes -mpopcnt -mpclmul"
export LDFLAGS="$LDFLAGS -Wl,-O3 -Wl,-mllvm,-fp-contract=fast -march=x86-64-v3"
export RUSTFLAGS="$RUSTFLAGS -C target-cpu=x86-64-v3 -C target-feature=+sse4.1 -C target-feature=+avx2 -C codegen-units=1 -Clink-args=--icf=safe"
fi
export VERBOSE=1
# Uncomment if you want to enable Polly optimizations
#export POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
# Common options
ac_add_options --enable-alsa
ac_add_options --enable-pulseaudio
if test "$ZEN_RELEASE"; then
# Disable DMD and ELF hacks, enable linker lld
ac_add_options --disable-dmd
@@ -26,38 +79,4 @@ if test "$ZEN_RELEASE"; then
ac_add_options --with-ccache=/home/runner/.mozbuild/sccache/sccache
mk_add_options 'export SCCACHE_GHA_ENABLED=on'
fi
# Enable Profile Guided Optimization
export MOZ_PGO=1
ac_add_options MOZ_PGO=1
if test "$SURFER_COMPAT" = "true"; then
# Optimization flags for SURFER_COMPAT
ac_add_options --enable-optimize="-O3 -march=x86-64"
export CFLAGS="$CFLAGS -O3 -ffp-contract=fast -march=x86-64"
export CPPFLAGS="$CPPFLAGS -O3 -ffp-contract=fast -march=x86-64"
export CXXFLAGS="$CXXFLAGS -O3 -flto=thin -ffp-contract=fast -march=x86-64"
export LDFLAGS="$LDFLAGS -Wl,-O3 -Wl,-mllvm,-fp-contract=fast -march=x86-64"
export RUSTFLAGS="$RUSTFLAGS -C target-cpu=x86-64 -C codegen-units=1 -Clink-args=--icf=safe"
else
# Optimization flags for general release
ac_add_options --enable-wasm-avx
ac_add_options --enable-optimize="-O3 -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -mpopcnt -mpclmul"
export CFLAGS="$CFLAGS -O3 -ffp-contract=fast -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -mfma -maes -mpopcnt -mpclmul"
export CPPFLAGS="$CPPFLAGS -O3 -ffp-contract=fast -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -mfma -maes -mpopcnt -mpclmul"
export CXXFLAGS="$CXXFLAGS -O3 -flto=thin -ffp-contract=fast -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -mfma -maes -mpopcnt -mpclmul"
export LDFLAGS="$LDFLAGS -Wl,-O3 -Wl,-mllvm,-fp-contract=fast -march=x86-64-v3"
export RUSTFLAGS="$RUSTFLAGS -C target-cpu=x86-64-v3 -C target-feature=+sse4.1 -C target-feature=+avx2 -C codegen-units=1 -Clink-args=--icf=safe"
fi
export VERBOSE=1
# Uncomment if you want to enable Polly optimizations
#export POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
fi
# Common options
ac_add_options --target=x86_64-pc-linux
ac_add_options --enable-alsa
ac_add_options --enable-pulseaudio

View File

@@ -1,14 +1,12 @@
# SURFER_COMPAT has a different meaning here, in macOS it means that the build is for
# x86_64, not ARM64.
unset MOZ_STDCXX_COMPAT
ac_add_options --disable-dmd
ac_add_options --enable-eme=widevine
export MOZ_MACBUNDLE_ID=${appId}
export MOZ_MACBUNDLE_NAME="Zen Browser.app"
if test "$SURFER_COMPAT" = "true"; then
if test "$SURFER_COMPAT" = "x86_64"; then
export MOZ_PGO=1
ac_add_options MOZ_PGO=1
ac_add_options --target=x86_64-apple-darwin

View File

@@ -1,9 +1,7 @@
if test "$ZEN_CROSS_COMPILING"; then
export WINSYSROOT="$(echo ~)/win-cross/vs2022"
export MIDL="$(echo ~)/win-cross/wine/bin/widl"
export WINE="$(echo ~)/win-cross/wine/bin/wine64"
export WINEDEBUG=-all
@@ -12,26 +10,24 @@ if test "$ZEN_CROSS_COMPILING"; then
export CROSS_BUILD=1
CROSS_COMPILE=1
TOOLS=$(echo ~)/win-cross
export WIN_UCRT_REDIST_DIR="$(echo ~)/win-cross/vs2022/Windows Kits/10/Redist/10.0.22621.0/ucrt/DLLs/x64"
export WIN32_REDIST_DIR="$(echo ~)/win-cross/vs2022/VC/Redist/MSVC/14.38.33135/x64/Microsoft.VC143.CRT"
export MIDL="$TOOLS/wine/bin/widl"
export MOZ_STUB_INSTALLER=1
export WINEDEBUG=-all
export WINE="$TOOLS/wine/bin/wine64"
if test "$SURFER_COMPAT" = "aarch64"; then
export WIN32_REDIST_DIR="$(echo ~)/win-cross/vs2022/VC/Redist/MSVC/14.38.33135/arm64/Microsoft.VC143.CRT"
else
export WIN32_REDIST_DIR="$(echo ~)/win-cross/vs2022/VC/Redist/MSVC/14.38.33135/x64/Microsoft.VC143.CRT"
fi
fi
#? https://bugzilla.mozilla.org/show_bug.cgi?id=1617793
#? https://phabricator.services.mozilla.com/D170170
ac_add_options --target=x86_64-pc-windows-msvc
ac_add_options --disable-maintenance-service
ac_add_options --disable-bits-download
if test "$SURFER_COMPAT" = "true"; then
if test "$SURFER_COMPAT" = "x86_64"; then
ac_add_options --target=x86_64-pc-windows-msvc
ac_add_options --enable-eme=widevine
ac_add_options --enable-optimize="-O3 -w -ftree-vectorize"
export CFLAGS="-mtune=haswell -march=x86-64 -O2 -Qvec -w"
@@ -39,7 +35,21 @@ if test "$SURFER_COMPAT" = "true"; then
export CXXFLAGS="-flto=thin -mtune=haswell -march=x86-64 -O2 -Qvec -w"
export LDFLAGS="-Wl,-O2"
export RUSTFLAGS="-Clink-args=--icf=safe -C codegen-units=1 -Ctarget-cpu=x86-64"
elif test "$SURFER_COMPAT" = "aarch64"; then
ac_add_options --target=aarch64-pc-windows-msvc
ac_add_options --enable-eme=widevine
ac_add_options --enable-optimize="-O2 -mtune=cortex-a55 -march=armv8.2-a+simd"
export CFLAGS="-O2 -march=armv8.2-a+simd -mtune=cortex-a55"
export CPPFLAGS="-O2 -march=armv8.2-a+simd -mtune=cortex-a55"
export CXXFLAGS="-O2 -march=armv8.2-a+simd -mtune=cortex-a55"
export LDFLAGS="-Wl,-O2 -march=armv8.2-a+simd -mtune=cortex-a55"
export RUSTFLAGS="-C target-feature=+v8.2a -C codegen-units=1 -Ctarget-cpu=cortex-a55"
else
ac_add_options --target=x86_64-pc-windows-msvc
ac_add_options --enable-eme=widevine
ac_add_options --enable-optimize="-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -mfma -maes -ftree-vectorize -Xclang -w"
ac_add_options --enable-wasm-avx

View File

@@ -28,7 +28,9 @@
"linux": "linux.mar",
"macos-x64": "macos-x64.mar",
"windows-compat": "windows-generic.mar",
"linux-compat": "linux-generic.mar"
"linux-compat": "linux-generic.mar",
"windows-arm64": "windows-arm64.mar",
"linux-aarch64": "linux-aarch64.mar"
}
}
},
@@ -48,7 +50,9 @@
"linux": "linux.mar",
"macos-x64": "macos-x64.mar",
"windows-compat": "windows-generic.mar",
"linux-compat": "linux-generic.mar"
"linux-compat": "linux-generic.mar",
"windows-arm64": "windows-arm64.mar",
"linux-aarch64": "linux-aarch64.mar"
}
}
}
@@ -60,4 +64,4 @@
"licenseType": "MPL-2.0"
},
"updateHostname": "updates.zen-browser.app"
}
}