From 4d96c93fb571b2600341808344c6caf3e1d0ee13 Mon Sep 17 00:00:00 2001 From: Basilisk-Dev Date: Fri, 15 May 2026 11:16:06 -0400 Subject: [PATCH 1/8] Implement github action for Windows --- .github/workflows/build-basilisk-windows.yml | 96 +++++++++++++++++++ .../mach-passthrough-windows.sh | 8 ++ .../build-basilisk-windows/mozconfig-win32 | 40 ++++++++ .../build-basilisk-windows/mozconfig-win64 | 40 ++++++++ 4 files changed, 184 insertions(+) create mode 100644 .github/workflows/build-basilisk-windows.yml create mode 100755 .github/workflows/build-basilisk-windows/mach-passthrough-windows.sh create mode 100644 .github/workflows/build-basilisk-windows/mozconfig-win32 create mode 100644 .github/workflows/build-basilisk-windows/mozconfig-win64 diff --git a/.github/workflows/build-basilisk-windows.yml b/.github/workflows/build-basilisk-windows.yml new file mode 100644 index 0000000000..2053c32d32 --- /dev/null +++ b/.github/workflows/build-basilisk-windows.yml @@ -0,0 +1,96 @@ +name: Build Basilisk Windows + +on: + pull_request: + workflow_dispatch: + # push: + # branches: + # - master + # - release + +jobs: + build-basilisk-windows: + name: Build Basilisk ${{ matrix.config.name }} + runs-on: windows-2022 + strategy: + fail-fast: false + matrix: + config: + - name: Windows-Win64 + win: win64 + arch: x86_64 + + - name: Windows-Win32 + win: win32 + arch: i686 + + steps: + - name: List available VC Redist folders (for debugging) + run: tree /f "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\redist" + + - name: Install MozillaBuild + run: | + Invoke-WebRequest -Uri https://ftp.mozilla.org/pub/mozilla/libraries/win32/MozillaBuildSetup-3.4.exe -OutFile MozillaBuildSetup-3.4.exe + .\MozillaBuildSetup-3.4.exe /S /v/qn | Write-Output + del .\MozillaBuildSetup-3.4.exe + shell: pwsh + + - uses: ChristopheLav/windows-sdk-install@v1 + with: + version-sdk: ${{ matrix.config.arch == 'x86_64' && '26100' || '22621' }} + features: "OptionId.DesktopCPPx64,OptionId.DesktopCPPx86" + + - name: Checkout eUXP + uses: actions/checkout@v6 + with: + path: euxp + repository: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name || github.repository }} + ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} + submodules: recursive + + - name: Clone Basilisk and insert eUXP platform + run: | + git clone -b basilisk https://repo.palemoon.org/Basilisk-Dev/Basilisk basilisk + Remove-Item -Recurse -Force .\basilisk\platform + Move-Item -Path .\euxp -Destination .\basilisk\platform + shell: pwsh + + - name: Copy mozconfig + run: Copy-Item .\basilisk\platform\.github\workflows\build-basilisk-windows\mozconfig-${{ matrix.config.win }} -Destination .\basilisk\.mozconfig + shell: pwsh + + - name: debug dirs + run: | + C:\mozilla-build\start-shell.bat echo '/c' + C:\mozilla-build\start-shell.bat ls /c + C:\mozilla-build\start-shell.bat echo '/c/a' + C:\mozilla-build\start-shell.bat ls /c/a + C:\mozilla-build\start-shell.bat echo '/d' + C:\mozilla-build\start-shell.bat ls /d + C:\mozilla-build\start-shell.bat echo '/d/a' + C:\mozilla-build\start-shell.bat ls /d/a + + - name: mach configure + run: | + C:\mozilla-build\start-shell.bat /d/a/${{ github.event.repository.name }}/basilisk/platform/.github/workflows/build-basilisk-windows/mach-passthrough-windows.sh /d/a/${{ github.event.repository.name }}/basilisk configure + shell: pwsh + + - name: mach build + run: | + C:\mozilla-build\start-shell.bat /d/a/${{ github.event.repository.name }}/basilisk/platform/.github/workflows/build-basilisk-windows/mach-passthrough-windows.sh /d/a/${{ github.event.repository.name }}/basilisk build + shell: pwsh + + - name: mach package + run: | + C:\mozilla-build\start-shell.bat /d/a/${{ github.event.repository.name }}/basilisk/platform/.github/workflows/build-basilisk-windows/mach-passthrough-windows.sh /d/a/${{ github.event.repository.name }}/basilisk package + shell: pwsh + + - name: mach installer if release branch + shell: pwsh + run: | + C:\mozilla-build\start-shell.bat /d/a/${{ github.event.repository.name }}/basilisk/platform/.github/workflows/build-basilisk-windows/mach-passthrough-windows.sh /d/a/${{ github.event.repository.name }}/basilisk installer + + - uses: actions/upload-artifact@v4 + with: + name: basilisk-windows-${{ matrix.config.win }} + path: basilisk/obj-${{ matrix.config.arch }}-pc-mingw32/dist/basilisk-* diff --git a/.github/workflows/build-basilisk-windows/mach-passthrough-windows.sh b/.github/workflows/build-basilisk-windows/mach-passthrough-windows.sh new file mode 100755 index 0000000000..9c89535ff2 --- /dev/null +++ b/.github/workflows/build-basilisk-windows/mach-passthrough-windows.sh @@ -0,0 +1,8 @@ +#!/bin/sh +set -e + +BASILISK_DIR=$1 +MACH_ARG=$2 + +cd "$BASILISK_DIR" +./mach "$MACH_ARG" diff --git a/.github/workflows/build-basilisk-windows/mozconfig-win32 b/.github/workflows/build-basilisk-windows/mozconfig-win32 new file mode 100644 index 0000000000..8e24111c30 --- /dev/null +++ b/.github/workflows/build-basilisk-windows/mozconfig-win32 @@ -0,0 +1,40 @@ +# Tell the build system if we're building 64-bit. +# Set this to `BUILD_64=1` for 64-bit, leave as-is for 32-bit +BUILD_64= + +# Processor architecture specific build options +if [ -n "$BUILD_64" ]; then + BUILD_ARCH=x64 + ac_add_options --target=x86_64-pc-mingw32 + ac_add_options --host=x86_64-pc-mingw32 +else + BUILD_ARCH=x86 +fi + +# Automatically clobber if CLOBBER was touched +mk_add_options AUTOCLOBBER=1 + +# Set Basilisk version to date timestamp +export BASILISK_VERSION=1 + +export MOZILLA_OFFICIAL=1 + +# Standard build options for Basilisk +ac_add_options --enable-application=basilisk +ac_add_options --enable-optimize="-O2 -GTs -GS- -Qspectre -utf-8" +ac_add_options --enable-update-channel=release +ac_add_options --enable-jemalloc +ac_add_options --enable-strip +ac_add_options --enable-devtools +ac_add_options --enable-av1 +ac_add_options --enable-jxl +ac_add_options --enable-webrtc +ac_add_options --enable-gamepad +ac_add_options --disable-tests +ac_add_options --disable-debug +ac_add_options --disable-official-branding +ac_add_options --disable-updater +ac_add_options --disable-precompiled-startupcache + +WIN32_REDIST_DIR="C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/redist/MSVC/14.44.35112/$BUILD_ARCH/Microsoft.VC143.CRT" +WIN_UCRT_REDIST_DIR="C:/Program Files (x86)/Windows Kits/10/Redist/10.0.22621.0/ucrt/DLLs/$BUILD_ARCH" diff --git a/.github/workflows/build-basilisk-windows/mozconfig-win64 b/.github/workflows/build-basilisk-windows/mozconfig-win64 new file mode 100644 index 0000000000..1ea251d89b --- /dev/null +++ b/.github/workflows/build-basilisk-windows/mozconfig-win64 @@ -0,0 +1,40 @@ +# Tell the build system if we're building 64-bit. +# Set this to `BUILD_64=1` for 64-bit, leave as-is for 32-bit +BUILD_64=1 + +# Processor architecture specific build options +if [ -n "$BUILD_64" ]; then + BUILD_ARCH=x64 + ac_add_options --target=x86_64-pc-mingw32 + ac_add_options --host=x86_64-pc-mingw32 +else + BUILD_ARCH=x86 +fi + +# Automatically clobber if CLOBBER was touched +mk_add_options AUTOCLOBBER=1 + +# Set Basilisk version to date timestamp +export BASILISK_VERSION=1 + +export MOZILLA_OFFICIAL=1 + +# Standard build options for Basilisk +ac_add_options --enable-application=basilisk +ac_add_options --enable-optimize="-O2 -GTs -GS- -Qspectre -utf-8" +ac_add_options --enable-update-channel=release +ac_add_options --enable-jemalloc +ac_add_options --enable-strip +ac_add_options --enable-devtools +ac_add_options --enable-av1 +ac_add_options --enable-jxl +ac_add_options --enable-webrtc +ac_add_options --enable-gamepad +ac_add_options --disable-tests +ac_add_options --disable-debug +ac_add_options --disable-official-branding +ac_add_options --disable-updater +ac_add_options --disable-precompiled-startupcache + +WIN32_REDIST_DIR="C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/redist/MSVC/14.44.35112/$BUILD_ARCH/Microsoft.VC143.CRT" +WIN_UCRT_REDIST_DIR="C:/Program Files (x86)/Windows Kits/10/Redist/10.0.26100.0/ucrt/DLLs/$BUILD_ARCH" From d39adf29445e9d8dd9138a43d94352b77934c264 Mon Sep 17 00:00:00 2001 From: Basilisk-Dev Date: Fri, 15 May 2026 11:21:16 -0400 Subject: [PATCH 2/8] Fix incorrect branch name in windows actions --- .github/workflows/build-basilisk-windows.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-basilisk-windows.yml b/.github/workflows/build-basilisk-windows.yml index 2053c32d32..3ca0afa702 100644 --- a/.github/workflows/build-basilisk-windows.yml +++ b/.github/workflows/build-basilisk-windows.yml @@ -50,7 +50,7 @@ jobs: - name: Clone Basilisk and insert eUXP platform run: | - git clone -b basilisk https://repo.palemoon.org/Basilisk-Dev/Basilisk basilisk + git clone -b euxp https://repo.palemoon.org/Basilisk-Dev/Basilisk basilisk Remove-Item -Recurse -Force .\basilisk\platform Move-Item -Path .\euxp -Destination .\basilisk\platform shell: pwsh From 569a49ae98fdebf5c1b020c85e4b140df4f120c4 Mon Sep 17 00:00:00 2001 From: Basilisk-Dev Date: Fri, 15 May 2026 11:25:48 -0400 Subject: [PATCH 3/8] debug dirs --- .github/workflows/build-basilisk-windows.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-basilisk-windows.yml b/.github/workflows/build-basilisk-windows.yml index 3ca0afa702..b82fb3eb7a 100644 --- a/.github/workflows/build-basilisk-windows.yml +++ b/.github/workflows/build-basilisk-windows.yml @@ -69,6 +69,8 @@ jobs: C:\mozilla-build\start-shell.bat ls /d C:\mozilla-build\start-shell.bat echo '/d/a' C:\mozilla-build\start-shell.bat ls /d/a + C:\mozilla-build\start-shell.bat echo '/d/a/eUXP' + C:\mozilla-build\start-shell.bat echo '/d/a/eUXP' - name: mach configure run: | From bb0f53e3db765eeb05ad3677bb446d56579c7434 Mon Sep 17 00:00:00 2001 From: Basilisk-Dev Date: Fri, 15 May 2026 11:33:27 -0400 Subject: [PATCH 4/8] debug dirs --- .github/workflows/build-basilisk-windows.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-basilisk-windows.yml b/.github/workflows/build-basilisk-windows.yml index b82fb3eb7a..626580f218 100644 --- a/.github/workflows/build-basilisk-windows.yml +++ b/.github/workflows/build-basilisk-windows.yml @@ -70,7 +70,7 @@ jobs: C:\mozilla-build\start-shell.bat echo '/d/a' C:\mozilla-build\start-shell.bat ls /d/a C:\mozilla-build\start-shell.bat echo '/d/a/eUXP' - C:\mozilla-build\start-shell.bat echo '/d/a/eUXP' + C:\mozilla-build\start-shell.bat ls '/d/a/eUXP' - name: mach configure run: | From d53dfef8bef0a46b5af2e7b3bfdb2d12a6f43bdd Mon Sep 17 00:00:00 2001 From: Basilisk-Dev Date: Fri, 15 May 2026 11:36:57 -0400 Subject: [PATCH 5/8] fix paths --- .github/workflows/build-basilisk-windows.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-basilisk-windows.yml b/.github/workflows/build-basilisk-windows.yml index 626580f218..6606bf0604 100644 --- a/.github/workflows/build-basilisk-windows.yml +++ b/.github/workflows/build-basilisk-windows.yml @@ -74,23 +74,23 @@ jobs: - name: mach configure run: | - C:\mozilla-build\start-shell.bat /d/a/${{ github.event.repository.name }}/basilisk/platform/.github/workflows/build-basilisk-windows/mach-passthrough-windows.sh /d/a/${{ github.event.repository.name }}/basilisk configure + C:\mozilla-build\start-shell.bat /d/a/${{ github.event.repository.name }}/${{ github.event.repository.name }}/basilisk/platform/.github/workflows/build-basilisk-windows/mach-passthrough-windows.sh /d/a/${{ github.event.repository.name }}/${{ github.event.repository.name }}/basilisk configure shell: pwsh - name: mach build run: | - C:\mozilla-build\start-shell.bat /d/a/${{ github.event.repository.name }}/basilisk/platform/.github/workflows/build-basilisk-windows/mach-passthrough-windows.sh /d/a/${{ github.event.repository.name }}/basilisk build + C:\mozilla-build\start-shell.bat /d/a/${{ github.event.repository.name }}/${{ github.event.repository.name }}/basilisk/platform/.github/workflows/build-basilisk-windows/mach-passthrough-windows.sh /d/a/${{ github.event.repository.name }}/${{ github.event.repository.name }}/basilisk build shell: pwsh - name: mach package run: | - C:\mozilla-build\start-shell.bat /d/a/${{ github.event.repository.name }}/basilisk/platform/.github/workflows/build-basilisk-windows/mach-passthrough-windows.sh /d/a/${{ github.event.repository.name }}/basilisk package + C:\mozilla-build\start-shell.bat /d/a/${{ github.event.repository.name }}/${{ github.event.repository.name }}/basilisk/platform/.github/workflows/build-basilisk-windows/mach-passthrough-windows.sh /d/a/${{ github.event.repository.name }}/${{ github.event.repository.name }}/basilisk package shell: pwsh - name: mach installer if release branch shell: pwsh run: | - C:\mozilla-build\start-shell.bat /d/a/${{ github.event.repository.name }}/basilisk/platform/.github/workflows/build-basilisk-windows/mach-passthrough-windows.sh /d/a/${{ github.event.repository.name }}/basilisk installer + C:\mozilla-build\start-shell.bat /d/a/${{ github.event.repository.name }}/${{ github.event.repository.name }}/basilisk/platform/.github/workflows/build-basilisk-windows/mach-passthrough-windows.sh /d/a/${{ github.event.repository.name }}/${{ github.event.repository.name }}/basilisk installer - uses: actions/upload-artifact@v4 with: From 430219419b425aa3cfba50dc9530a1c1da86843d Mon Sep 17 00:00:00 2001 From: Basilisk-Dev Date: Fri, 15 May 2026 11:40:41 -0400 Subject: [PATCH 6/8] remove obsolete path in mozconfig --- .github/workflows/build-basilisk-windows/mozconfig-win32 | 1 - .github/workflows/build-basilisk-windows/mozconfig-win64 | 1 - 2 files changed, 2 deletions(-) diff --git a/.github/workflows/build-basilisk-windows/mozconfig-win32 b/.github/workflows/build-basilisk-windows/mozconfig-win32 index 8e24111c30..0edba214c0 100644 --- a/.github/workflows/build-basilisk-windows/mozconfig-win32 +++ b/.github/workflows/build-basilisk-windows/mozconfig-win32 @@ -27,7 +27,6 @@ ac_add_options --enable-jemalloc ac_add_options --enable-strip ac_add_options --enable-devtools ac_add_options --enable-av1 -ac_add_options --enable-jxl ac_add_options --enable-webrtc ac_add_options --enable-gamepad ac_add_options --disable-tests diff --git a/.github/workflows/build-basilisk-windows/mozconfig-win64 b/.github/workflows/build-basilisk-windows/mozconfig-win64 index 1ea251d89b..a1bc06477a 100644 --- a/.github/workflows/build-basilisk-windows/mozconfig-win64 +++ b/.github/workflows/build-basilisk-windows/mozconfig-win64 @@ -27,7 +27,6 @@ ac_add_options --enable-jemalloc ac_add_options --enable-strip ac_add_options --enable-devtools ac_add_options --enable-av1 -ac_add_options --enable-jxl ac_add_options --enable-webrtc ac_add_options --enable-gamepad ac_add_options --disable-tests From afe70c59a7a266f77e1c7c4955ab731002b4a36a Mon Sep 17 00:00:00 2001 From: Basilisk-Dev Date: Fri, 15 May 2026 11:47:28 -0400 Subject: [PATCH 7/8] install nasm --- .github/workflows/build-basilisk-windows.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build-basilisk-windows.yml b/.github/workflows/build-basilisk-windows.yml index 6606bf0604..a1a2bf4f5b 100644 --- a/.github/workflows/build-basilisk-windows.yml +++ b/.github/workflows/build-basilisk-windows.yml @@ -40,6 +40,9 @@ jobs: version-sdk: ${{ matrix.config.arch == 'x86_64' && '26100' || '22621' }} features: "OptionId.DesktopCPPx64,OptionId.DesktopCPPx86" + - name: Install NASM + uses: ilammy/setup-nasm@v1 + - name: Checkout eUXP uses: actions/checkout@v6 with: From 7a2e36d59d3252b88516e468163f5ffa1ef08f3d Mon Sep 17 00:00:00 2001 From: Basilisk-Dev Date: Fri, 15 May 2026 12:01:04 -0400 Subject: [PATCH 8/8] redo install nasm --- .github/workflows/build-basilisk-windows.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-basilisk-windows.yml b/.github/workflows/build-basilisk-windows.yml index a1a2bf4f5b..5050a3769a 100644 --- a/.github/workflows/build-basilisk-windows.yml +++ b/.github/workflows/build-basilisk-windows.yml @@ -40,8 +40,13 @@ jobs: version-sdk: ${{ matrix.config.arch == 'x86_64' && '26100' || '22621' }} features: "OptionId.DesktopCPPx64,OptionId.DesktopCPPx86" - - name: Install NASM - uses: ilammy/setup-nasm@v1 + - name: Install NASM into MozillaBuild + run: | + Invoke-WebRequest -Uri https://www.nasm.us/pub/nasm/releasebuilds/3.01/win64/nasm-3.01-win64.zip -OutFile nasm-3.01-win64.zip + Expand-Archive -Path nasm-3.01-win64.zip -DestinationPath nasm-3.01-win64 -Force + Get-ChildItem -Path nasm-3.01-win64 -Filter *.exe -Recurse | Copy-Item -Destination C:\mozilla-build\bin -Force + C:\mozilla-build\start-shell.bat nasm -v + shell: pwsh - name: Checkout eUXP uses: actions/checkout@v6