Because:
- we have standardized on using a single version of application-services
across all Experimenter, Cirrus, and integration tests; and
- we do not want to manually manage updating this version
This commit:
- adds a CI task to open a new PR for new application-services
nightlies.
Fixes https://github.com/mozilla/experimenter/issues/9688
feat(nimbus): Use pre-built A-S in Cirrus and Experimenter
Because:
- our integration tests have been updated to use pre-built
application-services artifacts;
- the Cirrus and Experimenter Dockerfiles are currently building
application-services from source;
- Cirrus was using a Debian buster (oldoldstable); and
- Cirrus and Experimenter were using a pinned minor version of Python,
which prevents them from getting security upgrades in minor patches.
This commit:
- updates the Cirrus and Experimenter Dockerfiles to reference the
`experimenter:megazords` image, which contains the pre-built binaries;
- updates Cirrus to use a Debian bullseye (oldstable) image; and
- updates Cirrus and Experimenter to not pin the minor verison of Python
(3.11.2 to 3.11).
Fixes#10150
Because
- The sdk integration test image was stuck on application-services
v97.5.1 due to build system changes, which prevented landing any new
targeting using new targeting attributes from v98 onwards.
- The current system of periodically pushing a integration test image
and pulling that pre-built image in tests lead to headaches and
issues.
- I discovered several oddities in the current
integration-test-nimbus-rust setup (specifying a webdriver driver,
sudo commands that never ran because sudo was not installed).
- The new application services has a very different NimbusClient
interface from the one currently used in tests.
This commit
- Adds a `experimenter:megazords` container, which is responsible for
downloading a tagged nightly of the Cirrus and Nimbus-Experimenter
megazords.
- Adds a new `experimenter:integration-tests` container, which takes the
place of the old "nimbus-rust-image" container. This container is very
barebones, and only includes the application services megazord (copied
from the other container) and tox.
- Removes the old `Dockerfile-rust-image` and its publishing steps from
CI.
- Configures our integration tests to build the image on the fly instead
of pulling a pre-built image from a registry.
- Cleans up a few things in the `test_mobile_targeting.py` suite and
updates the code to match the new interfaces.
- Updates the `integration_test_nimbus_rust` task to run tox with `-vv`,
which includes the output of any commands issued.
Fixes#9820
Because:
- #9694 broke integration tests;
This commit
- reverts #9694; and
- adds an explicit pull of our integration test image in our CI
workflow.
Fixes#9707
Because
- we don't want to manually build application-services megazords
ourselves for each container; and
- application-services publishes megazord artifacts on Taskcluster
This commit
- adds a new as-builder docker container to download cirrus and nimbus
megazords with the appropriate binaries for the platform as Python
packages;
- updates the cirrus and experimenter containers to copy the megazords
from the as-builder container;
- updates cirrus and experimenter to refer to the new megazord packages;
- updates cirrus to be based on Debian Bullseye so it can use the
generated binaries; and
- updates the Dockerfile-rust-image container to be built on top of
as-builder in CI.