WIP FELT: Add an about:restartforced page #44
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Builds | |
| on: | |
| push: | |
| branches: | |
| - 'enterprise-**' | |
| pull_request: | |
| types: [opened, reopened] | |
| 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: | | |
| C:\mozilla-build\bin\unzip.exe ./obj-*/dist/firefox-*.win64.zip | |
| - 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 obj-*/dist/firefox.exe | Select-Object -First 1 -ExpandProperty FullName | |
| $ERnv:RUNTIME_VERSION = (& $firefoxPath --version) -split '\s+' | Select-Object -Index 2 | |
| (Get-Content expectations.json.in) -replace '#RUNTIME_VERSION#', $env:RUNTIME_VERSION | Set-Content expectations.json | |
| New-Item -ItemType Directory -Force -Path .\profiles | |
| . venv_tests\Scripts\activate | |
| $geckodriverPath = Join-Path -Path $PWD -ChildPath "geckodriver" | |
| $profilesPath = Join-Path -Path $PWD -ChildPath "profiles" | |
| 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 }} |