Skip to content

Enterprise Felt-is-Firefox with addons #55

Enterprise Felt-is-Firefox with addons

Enterprise Felt-is-Firefox with addons #55

Workflow file for this run

name: Builds
on:
pull_request:
push:
branches:
- enterprise-main
jobs:
package-tests:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v5
with:
sparse-checkout: |
testing/enterprise/
sparse-checkout-cone-mode: false
- uses: actions/upload-artifact@v4
with:
name: enterprise-tests
path: testing/enterprise/
compression-level: 0
linux-build-vm:
runs-on: ubuntu-24.04
environment: Credentials
outputs:
instance_name: ${{ steps.create_vm.outputs.instance_name }}
permissions:
contents: 'read'
id-token: 'write'
steps:
- uses: actions/checkout@v5
with:
sparse-checkout: |
.github/actions/
sparse-checkout-cone-mode: false
- id: create_vm
uses: ./.github/actions/create-vm
with:
instance_kind: "linux-build"
extra_labels: "build,LinuxNative"
gcp_credentials: "${{ secrets.GCP_CREDENTIALS }}"
github_runner_token: "${{ secrets.GH_RUNNER_TOKEN }}"
linux-build-vm-clean:
runs-on: ubuntu-24.04
environment: Credentials
needs: [ linux-build-vm, linux-build-opt ]
if: "always()"
permissions:
contents: 'read'
id-token: 'write'
steps:
- uses: actions/checkout@v5
with:
sparse-checkout: |
.github/actions/
sparse-checkout-cone-mode: false
- id: delete_vm
uses: ./.github/actions/delete-vm
with:
instance_name: ${{ needs.linux-build-vm.outputs.instance_name }}
gcp_credentials: "${{ secrets.GCP_CREDENTIALS }}"
github_runner_token: "${{ secrets.GH_RUNNER_TOKEN }}"
linux-test-vm:
runs-on: ubuntu-24.04
environment: Credentials
needs: [ linux-build-opt ]
outputs:
instance_name: ${{ steps.create_vm.outputs.instance_name }}
permissions:
contents: 'read'
id-token: 'write'
steps:
- uses: actions/checkout@v5
with:
sparse-checkout: |
.github/actions/
sparse-checkout-cone-mode: false
- id: create_vm
uses: ./.github/actions/create-vm
with:
instance_kind: "linux-test"
gcp_machine_type: "c4d-standard-2"
gcp_provisioning_model: "STANDARD"
extra_labels: "test,LinuxNative"
gcp_credentials: "${{ secrets.GCP_CREDENTIALS }}"
github_runner_token: "${{ secrets.GH_RUNNER_TOKEN }}"
linux-test-vm-clean:
runs-on: ubuntu-24.04
environment: Credentials
needs: [ linux-test-vm, linux-test ]
if: "always()"
permissions:
contents: 'read'
id-token: 'write'
steps:
- uses: actions/checkout@v5
with:
sparse-checkout: |
.github/actions/
sparse-checkout-cone-mode: false
- id: delete_vm
uses: ./.github/actions/delete-vm
with:
instance_name: ${{ needs.linux-test-vm.outputs.instance_name }}
gcp_credentials: "${{ secrets.GCP_CREDENTIALS }}"
github_runner_token: "${{ secrets.GH_RUNNER_TOKEN }}"
linux-build-opt:
runs-on: [ self-hosted, LinuxNative, X64 ]
needs: linux-build-vm
env:
MOZCONFIG: ${{ github.workspace }}/build/unix/mozconfig.enterprise
steps:
- uses: actions/checkout@v5
- name: "check mozconfig"
run: |
ls -hal $MOZCONFIG
cat $MOZCONFIG
- name: setup
run: |
rustup default stable
- name: build
run: ./mach build
- name: package
run: ./mach package
- uses: actions/upload-artifact@v4
with:
name: firefox-linux-amd64
path: obj-*/dist/firefox-*.tar*
compression-level: 0
linux-test:
runs-on: [self-hosted, LinuxNative, X64]
needs: [ linux-test-vm, package-tests ]
steps:
- name: "download firefox build"
uses: actions/download-artifact@v5
with:
name: firefox-linux-amd64
- name: "download enterprise tests"
uses: actions/download-artifact@v5
with:
name: enterprise-tests
- name: "unpack firefox build"
id: unpack
run: |
tar xf ./obj-*/dist/firefox-*.tar*
RUNTIME_PATH=$(find . -type f -name "firefox")
echo "runtime_path=$RUNTIME_PATH" >> "$GITHUB_OUTPUT"
- name: "install python"
run: |
python3 -m venv venv_tests
- name: "install deps"
run: |
curl -sSL https://github.com/mozilla/geckodriver/releases/download/v0.36.0/geckodriver-v0.36.0-linux64.tar.gz | tar -zxf -
. venv_tests/bin/activate
pip3 install -r requirements.txt
- name: "run tests"
run: |
RUNTIME_VERSION=$(${{ steps.unpack.outputs.runtime_path }} --version | awk '{ print $3 }')
sed -e "s/#RUNTIME_VERSION#/${RUNTIME_VERSION}/g" < expectations.json.in > expectations.json
mkdir -p ./profiles/
. venv_tests/bin/activate
python3 test_firefox_start.py expectations.json ${{ steps.unpack.outputs.runtime_path }} $PWD/geckodriver $PWD/profiles/
windows-build-vm:
runs-on: ubuntu-24.04
environment: Credentials
outputs:
instance_name: ${{ steps.create_vm.outputs.instance_name }}
permissions:
contents: 'read'
id-token: 'write'
steps:
- uses: actions/checkout@v5
with:
sparse-checkout: |
.github/actions/
sparse-checkout-cone-mode: false
- id: create_vm
uses: ./.github/actions/create-vm
with:
instance_kind: "windows-build"
extra_labels: "build,WinCross"
gcp_credentials: "${{ secrets.GCP_CREDENTIALS }}"
github_runner_token: "${{ secrets.GH_RUNNER_TOKEN }}"
windows-build-vm-clean:
runs-on: ubuntu-24.04
environment: Credentials
needs: [ windows-build-vm, windows-build-opt ]
if: "always()"
permissions:
contents: 'read'
id-token: 'write'
steps:
- uses: actions/checkout@v5
with:
sparse-checkout: |
.github/actions/
sparse-checkout-cone-mode: false
- id: delete_vm
uses: ./.github/actions/delete-vm
with:
instance_name: ${{ needs.windows-build-vm.outputs.instance_name }}
gcp_credentials: "${{ secrets.GCP_CREDENTIALS }}"
github_runner_token: "${{ secrets.GH_RUNNER_TOKEN }}"
windows-test-vm:
runs-on: ubuntu-24.04
environment: Credentials
needs: [ windows-build-opt ]
outputs:
instance_name: ${{ steps.create_vm.outputs.instance_name }}
permissions:
contents: 'read'
id-token: 'write'
steps:
- uses: actions/checkout@v5
with:
sparse-checkout: |
.github/actions/
sparse-checkout-cone-mode: false
- id: create_vm
uses: ./.github/actions/create-vm
with:
instance_kind: "windows-test"
gcp_machine_type: "c4d-standard-2"
gcp_provisioning_model: "STANDARD"
gcp_disk_size: "100"
gcp_disk_source: "disk-2025-dc-v20250813-20250902102015"
gcp_metadata_startup: "--metadata-from-file=windows-startup-script-ps1=./repo-checkout/.github/workflows/windows-startup.ps1"
extra_labels: "test,WinNative"
gcp_credentials: "${{ secrets.GCP_CREDENTIALS }}"
github_runner_token: "${{ secrets.GH_RUNNER_TOKEN }}"
windows-test-vm-clean:
runs-on: ubuntu-24.04
environment: Credentials
needs: [ windows-test-vm, windows-test ]
if: "always()"
permissions:
contents: 'read'
id-token: 'write'
steps:
- uses: actions/checkout@v5
with:
sparse-checkout: |
.github/actions/
sparse-checkout-cone-mode: false
- id: delete_vm
uses: ./.github/actions/delete-vm
with:
instance_name: ${{ needs.windows-test-vm.outputs.instance_name }}
gcp_credentials: "${{ secrets.GCP_CREDENTIALS }}"
github_runner_token: "${{ secrets.GH_RUNNER_TOKEN }}"
windows-build-opt:
runs-on: [ self-hosted, WinCross, X64 ]
needs: windows-build-vm
env:
MOZCONFIG: ${{ github.workspace }}/build/win64/mozconfig.enterprise
steps:
- name: checkout
uses: actions/checkout@v5
- name: "check mozconfig"
run: |
ls -hal $MOZCONFIG
cat $MOZCONFIG
- name: setup
run: |
rustup default stable
rustup target add x86_64-pc-windows-msvc
- name: build
run: |
./mach build
- name: package
run: ./mach package
- uses: actions/upload-artifact@v4
with:
name: firefox-windows-amd64
path: obj-*/dist/firefox-*.en-US.win64.zip
compression-level: 0
windows-test:
runs-on: [self-hosted, WinNative, X64]
needs: [ windows-test-vm, package-tests ]
steps:
- name: "download firefox build"
uses: actions/download-artifact@v5
with:
name: firefox-windows-amd64
- name: "download enterprise tests"
uses: actions/download-artifact@v5
with:
name: enterprise-tests
- name: "unpack firefox build"
id: unpack
run: |
$zipFile = Get-ChildItem -Path .\obj-*\dist\firefox-*.win64.zip | Select-Object -First 1 -ExpandProperty FullName
C:\mozilla-build\bin\unzip.exe $zipFile
- name: "install python"
run: |
python3 -m venv venv_tests
- name: "install deps"
run: |
Invoke-WebRequest -Uri https://github.com/mozilla/geckodriver/releases/download/v0.36.0/geckodriver-v0.36.0-win32.zip -OutFile geckodriver-v0.36.0-win32.zip
C:\mozilla-build\bin\unzip.exe geckodriver-v0.36.0-win32.zip
. venv_tests\Scripts\activate
pip3 install -r requirements.txt
- name: "run tests"
run: |
$firefoxPath = Get-ChildItem -Path .\firefox\firefox.exe | Select-Object -First 1 -ExpandProperty FullName
$geckodriverPath = Join-Path -Path $PWD -ChildPath "geckodriver.exe"
$profilesPath = Join-Path -Path $PWD -ChildPath "profiles"
$runtimeVersion = (Get-Content ".\firefox\application.ini") -match "^Version=" | ForEach-Object { $_.Split('=')[1] }
(Get-Content expectations.json.in) -replace '#RUNTIME_VERSION#', $runtimeVersion | Set-Content expectations.json
New-Item -ItemType Directory -Force -Path .\profiles
. venv_tests\Scripts\activate
python3 test_firefox_start.py expectations.json $firefoxPath $geckodriverPath $profilesPath
macOS-build-vm:
runs-on: ubuntu-24.04
environment: Credentials
outputs:
instance_name: ${{ steps.create_vm.outputs.instance_name }}
permissions:
contents: 'read'
id-token: 'write'
steps:
- uses: actions/checkout@v5
with:
sparse-checkout: |
.github/actions/
sparse-checkout-cone-mode: false
- id: create_vm
uses: ./.github/actions/create-vm
with:
instance_kind: "macos-build"
extra_labels: "build,MacCross,ARM64"
gcp_credentials: "${{ secrets.GCP_CREDENTIALS }}"
github_runner_token: "${{ secrets.GH_RUNNER_TOKEN }}"
macOS-build-vm-clean:
runs-on: ubuntu-24.04
environment: Credentials
needs: [ macOS-build-vm, macOS-build-opt ]
if: "always()"
permissions:
contents: 'read'
id-token: 'write'
steps:
- uses: actions/checkout@v5
with:
sparse-checkout: |
.github/actions/
sparse-checkout-cone-mode: false
- id: delete_vm
uses: ./.github/actions/delete-vm
with:
instance_name: ${{ needs.macOS-build-vm.outputs.instance_name }}
gcp_credentials: "${{ secrets.GCP_CREDENTIALS }}"
github_runner_token: "${{ secrets.GH_RUNNER_TOKEN }}"
macOS-build-opt:
runs-on: [ self-hosted, MacCross, ARM64 ]
needs: macos-build-vm
env:
MOZCONFIG: ${{ github.workspace }}/build/macosx/mozconfig.enterprise
steps:
- name: checkout
uses: actions/checkout@v5
- name: "check mozconfig"
run: |
ls -hal $MOZCONFIG
cat $MOZCONFIG
- name: setup
run: |
rustup default stable
rustup target add aarch64-apple-darwin
- name: build
run: |
export PATH=$HOME/.cargo/bin:$PATH
./mach build
- name: package
run: |
export PATH=$HOME/.cargo/bin:$PATH
./mach package
- uses: actions/upload-artifact@v4
with:
name: firefox-macOS-aarch64
path: obj-*/dist/firefox-*.dmg*
compression-level: 0
macOS-test:
runs-on: [self-hosted, MacNative, ARM64]
needs: [ macOS-build-opt, package-tests ]
steps:
- name: "download firefox build"
uses: actions/download-artifact@v5
with:
name: firefox-macOS-aarch64
- name: "download enterprise tests"
uses: actions/download-artifact@v5
with:
name: enterprise-tests
- name: "attach"
id: attach
run: |
MOUNT_DIR=$(hdiutil attach ./obj-aarch64-apple-darwin/dist/firefox-144.0a1.en-US.mac.dmg | grep "/Volumes" | sed -e "s/.*\/Volumes/\/Volumes/g")
ls -hal "${MOUNT_DIR}"/Firefox.app/Contents/MacOS/firefox
echo "mount_dir='${MOUNT_DIR}'" >> "$GITHUB_OUTPUT"
RUNTIME_PATH=$(find "${MOUNT_DIR}" -type f -name "firefox")
echo "runtime_path=$RUNTIME_PATH" >> "$GITHUB_OUTPUT"
- name: "install python"
run: |
python3 -m venv venv_tests
- name: "install deps"
run: |
curl -sSL https://github.com/mozilla/geckodriver/releases/download/v0.36.0/geckodriver-v0.36.0-macos-aarch64.tar.gz | tar -xf -
. venv_tests/bin/activate
pip3 install -r requirements.txt
- name: "run tests"
run: |
RUNTIME_VERSION=$(${{ steps.attach.outputs.runtime_path }} --version | awk '{ print $3 }')
sed -e "s/#RUNTIME_VERSION#/${RUNTIME_VERSION}/g" < expectations.json.in > expectations.json
mkdir -p ./profiles/
. venv_tests/bin/activate
python3 test_firefox_start.py expectations.json ${{ steps.attach.outputs.runtime_path }} $PWD/geckodriver $PWD/profiles/
- name: "detach"
if: "always()"
run: |
hdiutil unmount ${{ steps.attach.outputs.mount_dir }}