Because
- Our iOS integration tests only test against the `main` branch even
though we are tracking release and beta branches.
This commit
- Parametrizes the iOS job in the `circleci.yml` to accept different
types of files.
- Adds a `git checkout` to checkout the specific branch that has changed
Fixes#11597
Because:
- we need the .schema.json files in Desktop;
- they are not currently packaged into either the NPM or PyPI packages;
and
- the generated schemas do not include the custom validation logic
expressed by Pydantic validators
This commit:
- adds JSON schema validation via Pydantic's json_schema_extra hook to
give the JSON schemas validation parity with the Pydantic models and
existing JSON schemas in Desktop;
- generates the JSON schemas and commits them (in schemas/schemas);
- packages the produced schemas into the NPM package;
- packages the produced schemas into the PyPI package (but uncommitted,
since they are duplicates);
- revises the Makefile build steps for schema package generation; and
- bumps the schema package version.
Fixes#11518
Because
- We want to verify the studies toggle not only disables experiments but
also visually indicates they are disabled.
This commit
- Adds an additional step to our studies toggle test that verifies the
toggle indicates the correct state.
Fixes#11545
Because
- All digits short commit sha can be interpreted as an integer or
scientific notation (if starting with `1e` followed by digits) in some
systems ([1](https://github.com/helm/helm/issues/3001),
[2](https://github.com/helm/helm/issues/6867)).
This commit
- Prefixes commit SHA with `sha-` for images pushed to GAR.
Dockerhub/GCR images still use the SHA without prefix.
Because
- We have noticed a lot of PRs back to back with regards to our external
firefox integration job. Firefox Beta on Desktop specifically has a
decent number of daily builds.
This commit
- Reduces the amount of times this job is run on CI to once per day.
Fixes#11350
Because
- We are now able to trigger builds based on changes made to Firefox
Beta on mozilla-central. How ever, we weren't using the firefox images
from those tasks.
This commit
- Allows us to run the firefox beta tests against the recently built
version of Firefox Beta.
Fixes#11311
Because
- We want to run our Firefox Beta integration tests when we detect a new
build upstream
This commit
- Adds the configurations for this to be done
Fixes#11232
Because
- The file that stores our trracked key of the fenix taskcluster build
is a bit buried in the repo.
This commit
- Moves that file so that it is a bit easier to find.
Fixes#11277
Because
- We want to run our uIS integration tests when we detect an external
change. In this case, since iOS does not exist in mozilla-central we
will run the checks based on the cadence of fenix (Firefox for Android)
beta builds. This will change once FIrefox for iOS is in mc.
This commit
- Changes when the iOS integration tests run to when the fenix
integration tests are ran.
Fixes#11231
Because
- We want to run certain jobs based on external dependency changes as
they happen.
This commit
- Changes the fenix integration and enrollment tests to run when a
change has been detected within fenix.
Fixes#11230
Because
- This job could run on changes to other parts of the repo when it
shouldn't
This commit
- Fixes it to run on the correct change paths. This will be fixed soon
with the change to how we test external dependencies.
Fixes#11157
Because
- We are running an integration test on main that doesn't need to be run
This commit
- Adds the proper filtering to that job in the circleci config
Fixes#11158
Because:
- We have integration tests for fenix and desktop, we should add ios
This commit:
- Adds ios integration tests to the circleci workflow.
This test creates an experiment on experimenter and copies the recipe
from that experiment.
It then uses nimbus cli to enroll the device into that experiment and
does a few checks, namely
making sure the experiment is enrolled and that it can be unenrolled.
Fixes#11028
Becuase
* We want to run at least one remote settings integration test for every
app to make sure all the configuration and code is intact for every
application
* We don't need to check every remote settings case for every
application
* Reducing the number of remote settings tests will free up some CI
space to add fun new tests
This commit
* Collapses the remote settings integration tests down to two tasks
* One for launching every application
* One for the entire suite for a single application
fixes#11047
Because
- We want to support forks but environment variables aren't shared with
forks due to security polices. Because of this, the fenix integration
test job was failing due to not having access to an environment
variable.
This commit
- Hard code's experimenter docker hub repo `mozilla/experimenter` within
the fenix test job.
Fixes#11045
Because
- The logic in the circleci job to create a PR updating our fenix APKs
was incorrect. The recent changes triggered correctly but the if
statement was wrong and didn't allow the PR to be created
This commit
- Fixes this logic by just having 1 condition when it checks if there is
a new build on taskcluster,
Fixes#11036
Because
- Images tagged with the git sha are needed for the 'Four Keys' metrics
work
This commit
- Pushes a copy of the deploy image to docker hub and google container
registry with the git sha as the tag
Fixes#10807
Because
* Recent builds of docker-selenium prevent us from running tests locally
on M chip macs
* After investigation we find that 0.27.0 still works
This commit
* Locks our docker-selenium container to the last working version
fixes#10947
Because
- Using the circleci cache on forks in our fenix integration tests
doesn't work due to our security policy
This commit
- Fixes that by storing the APKs in a small docker image.
Fixes#10933
Because
- I added a circleci job to check mozilla-central for new fenix builds,
but I forgot to enable it under the correct workflow
This commit
- Enables the job correctly
Fixes https://github.com/mozilla/experimenter/issues/10915
Because
- We currently build our Fenix APKs each week
This commit
- Will change the builds to be similar to our application services job
on circle ci. It will check the taskcluster API for new fenix-beta
builds, and trigger a PR and a job to build the APKs we use for testing.
Because
It would be awesome to extend our coverage to android devices to make
sure those stay healthy.
This commit
* Adds a job to build the fenix test APKs from mozilla central.
* Adds a job to run a small suite of tests on fenix
Fixes#10843
Because:
- we are attempting to remove the wrong file, causing the update task to
fail
this commit:
- creates the experimenter/fetch-summary.txt file before calling
`make fetch_external_resources` so that it will have read and write
permissions; and
- moves the file afterwards so it will not be included in the commit.
Fixes#10706
Because:
- this file was accidentally committed becuase we no longer were
`mv`-ing it
This commit:
- Removes the file from the repository; and
- ensures we delete the temporary file.
Fixes#10702
Because:
- PR #10691 broke the update_external_configs task by attempting to
append to a read-only file.
This commit:
- fixes the task by copying the file contents to another file with write
permissions and appending to the new file instead.
Fixes#10697
Because:
- it is currently a manual process to investigate failed manifest update
PRs
this commit:
- updates the manifest update task to include the CircleCI build URL in
the PR body.
Fixes#10199
Because
- Our conditional builds for our firefox docker images weren't working
correctly.
This commit
- Removes the logic just to build them once a week
Fixes#10546
Becuase
* We added a second deploy to a test tag as part of debugging dockerhub
deploy issues
* The deploy issues are resolved now and it is safe to remove this
duplicate deploy
This commit
* Removes duplicate deploy
fixes#10297
Because
- Currently token `GH_USER` on CI has limited scope associated with it,
and we want to fetch resources from private repo. We have added new
token `GH_EXTERNAL_CONFIG_TOKEN` with the required scope
This commit
- Update external config job to use new token value
Fixes#10273
Because
* In the Dockerfile for application services we call apt-get upgrade
* We were implicitly using the debian:bullseye build dated 20240130
* Calling apt-get upgrade would silently pass becuase no packages had
been updated
* On Feb 12 some package updated and so the call to apt-get upgrade
produced a prompt to continue
* We had not included the -y flag to accept that prompt
* This caused Docker to abort the build with a spectacularly unhelpful
stack trace
This commit
* Locks the application services Dockerfile to a specific tag of
debian:bullseye
* Adds the -y flag to apt-get upgrade
* Forces all tests to run on changes to `application-services/`
fixes#10270
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
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
* Building Cirrus can be time consuming
* Cirrus is not necessary for many integration tests or local workflows
* We can add a flag to enable/disable cirrus to speed up the integration
tests or local workflows that don't involve Cirrus
This commit
* Adds a flag to enable/disable Cirrus in the Makefile
* Sets the flag automatically for all Cirrus make commands
* Sets the flag for Cirrus integration tests
fixes#9910
Because
- fetching feature manifests can fail (see #9804 for an example);
- the fetch command does not hard fail when an individual fetch fails;
and
- we are generating a summary of all the fetches
This commit
- updates the fetch command to hard fail if there are fetch failures and
no
successes (i.e., in the case where it would not open or update a PR);
- adds a flag to the fetch command to write the summary to a file; and
- opens and updates PRs with a summary of the fetches in the PR
description
Fixes#9815
Because:
- should-pr.py is written in Python 3; and
- the default Python on Ubuntu 20.04 is Python 2.7
This commit:
- explicitly runs should-pr.py with Python 3 in CI.
Fixes#9825
Because
* We run many integration tests against many applications for coverage
* As we add more applications, we don't want to disrupt the existing
tests
* Some integration tests were specifying applications by excluding other
applications becuase IOS and FOCUS_IOS would both match the same string
IOS
* This was resulting in some test runs running against multiple
applications which is slowing down CI and PRs
This commit
* Renames applications to have unique names
* Updates all the config references to use those names
Fixes#9718
Because
- we only want to merge PRs that have feature configuration changes
this commit
- adds a script to check if there are only `.ref-cache` changes;
- updates the `update_external_configs` CI job to call that script and;
- only push to the `external-config` branch and open PRs if that script
reports changes.
Fixes#9806
Because
- we want to keep track of features on individual product versions
This commit
- fetches features from releases going back 5 versions in FML apps; and
- does not do an initial import for the FML apps because it is a very
large change (see #9751).
Fixes#9685