chore(nimbus): add GHA workflows for desktop integration tests#14965
Open
jaredlockhart wants to merge 11 commits intomainfrom
Open
chore(nimbus): add GHA workflows for desktop integration tests#14965jaredlockhart wants to merge 11 commits intomainfrom
jaredlockhart wants to merge 11 commits intomainfrom
Conversation
579ae9c to
1ec63e4
Compare
relud
approved these changes
Mar 19, 2026
Because * The desktop integration tests currently only run on CircleCI * We are migrating all CI jobs from CircleCI to GitHub Actions (EXP-6320) This commit * Adds GHA workflows for all 5 desktop integration test suites: - `integration-nimbus-ui.yml` — Nimbus UI tests (`-m nimbus_ui`) - `integration-remote-settings-launch.yml` — Remote Settings launch test - `integration-remote-settings-all.yml` — Remote Settings all workflows - `integration-desktop-enrollment.yml` — Desktop enrollment tests - `integration-desktop-targeting.yml` — Desktop targeting (Release + Beta + Nightly matrix) * All workflows use the existing `setup-cached-build` composite action for Docker layer caching via Google Artifact Registry * All run on `ubuntu-24.04` with the same make targets and Docker Compose setup as CircleCI * All upload HTML test reports as GitHub Actions artifacts * Targeting tests use a matrix strategy for Release/Beta/Nightly channels Fixes #14583 Fixes #14584 Fixes #14585 Fixes #14586 Fixes #14587 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Because * The previous `-k FIREFOX_DESKTOP` filter selected cirrus_enrollment tests that require the Cirrus container, which isn't started by up_prod_detached without CIRRUS=1 * CircleCI splits this job into 3 parallel nodes by marker: remote_settings_experiments, remote_settings_rollouts, remote_settings_live_updates This commit * Converts the single job into a matrix strategy with 3 marker-based splits matching CircleCI's parallelism * Gives each matrix job a unique artifact name Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Because * GHA integration tests on ubuntu-24.04 (4 vCPU) run 40-80% slower than equivalent CircleCI jobs on large/xlarge instances * Target is ~10min per job to match CircleCI performance This commit * Bumps all 5 integration test workflows from ubuntu-24.04 (4 vCPU) to ubuntu-24.04-xl (8 vCPU, 32GB RAM) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Because * ubuntu-24.04-xl runners are not available in the mozilla org, causing jobs to queue indefinitely waiting for a runner This commit * Reverts all integration test workflows back to ubuntu-24.04 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Because * Transient infra failures (DNS resolution, upstream 500s) cause integration test jobs to fail before pytest even starts * The retry logic was duplicated across all 5 integration workflows This commit * Adds .github/actions/run-integration-test composite action that wraps the make command with configurable retry attempts and handles test report artifact upload * Migrates all 5 integration test workflows to use the new action Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Because * Desktop targeting tests (222 cases) take 19-27min per channel * Desktop enrollment tests (6 cases) take 19min * GHA runners are 4 vCPU so we can't increase xdist parallelism This commit * Adds --split/--splits pytest options via conftest.py hook that deterministically stripes tests by modulo across GHA matrix nodes * Splits targeting into 2 nodes per channel (6 total, was 3) * Splits enrollment into 2 nodes (was 1) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Because * pytest doesn't guarantee stable collection order across runs * Without deterministic ordering, the modulo split could assign different tests to different nodes on each run This commit * Sorts items by nodeid before applying the modulo split Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…gers Because * Changes to .github/actions/run-integration-test/ should trigger integration test workflows to verify the action still works This commit * Adds .github/actions/run-integration-test/** to path filters in all 5 integration test workflows Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…in CI Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Because
This commit
integration-nimbus-ui.yml— Nimbus UI tests (-m nimbus_ui)integration-remote-settings-launch.yml— Remote Settings launch testintegration-remote-settings-all.yml— Remote Settings all workflowsintegration-desktop-enrollment.yml— Desktop enrollment testsintegration-desktop-targeting.yml— Desktop targeting (Release + Beta + Nightly matrix)setup-cached-buildcomposite action for Docker layer caching via Google Artifact Registryubuntu-24.04with the same make targets and Docker Compose setup as CircleCIFixes #14583
Fixes #14584
Fixes #14585
Fixes #14586
Fixes #14587