Граф коммитов

169 Коммитов

Автор SHA1 Сообщение Дата
Beth Rennie 59328d5a1c
chore(project): Stop publishing experimenter to dockerhub for deployment (#11666)
Because:

- we are deploying through GAR images now

This commit:

- removes our push to dockerhub; and
- removes our push to gcr

Fixes #11665
2024-11-01 16:29:45 +00:00
dataops-ci-bot d546a6f3b3
chore(nimbus): Check external firefox integrations and task ids and versions (#11634)
Co-authored-by: Benjamin Forehand Jr <bennyjr169@gmail.com>
2024-10-29 20:53:11 +00:00
Benjamin Forehand Jr 22bfa8159a
chore(ci): Extend firefox iOS ci tests to test against specific branches. (#11598)
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
2024-10-23 17:33:57 +00:00
Beth Rennie be67f0b808
feat(schemas): generate .schema.json files for Experimenter and Feature Manifest schemas (#11519)
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
2024-10-18 20:30:05 +00:00
Benjamin Forehand Jr 0357f43c53
chore(project): Add check for studies toggle on android. (#11546)
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
2024-10-16 17:30:36 +00:00
Mikaël Ducharme 4c5be78ea0
chore(ci): prefix images pushed to GAR with `sha-`. (#11509)
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.
2024-10-08 14:36:43 +00:00
Benjamin Forehand Jr b8e3a1accf
chore(ci): Change external firefox integration test job to run once per day. (#11351)
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
2024-09-12 14:30:50 +00:00
Benjamin Forehand Jr a85f1354bc
chore(ci): Add steps to download firefox beta build for testing from specific tasks. (#11312)
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
2024-09-09 19:08:47 +00:00
Benjamin Forehand Jr 68b4266607
chore(ci): Point to the correct updater script for circleci. (#11301)
Because

- I forgot a change in my excitement to land the previous PR

This commit

- Runs the correct script for the hourly updater

Fixes #11302
2024-09-06 21:09:56 +00:00
Benjamin Forehand Jr 662f7d8cb7
feat(ci): Add configuration to run beta tests when a change is detected. (#11297)
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
2024-09-06 17:17:23 +00:00
Benjamin Forehand Jr 287f3fbc35
chore(project): Change fenix task id script to move the generated key. (#11278)
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
2024-09-04 16:56:18 +00:00
dataops-ci-bot 922a7af640
chore(nimbus): Check mobile integrations and update keys (#11275)
Co-authored-by: Benjamin Forehand Jr <bennyjr169@gmail.com>
2024-09-03 17:01:13 +00:00
Benjamin Forehand Jr a63a1c1b9d
chore(ci): Change ios integration tests to run off of upstream trigger (#11254)
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
2024-08-29 17:29:18 +00:00
Mikaël Ducharme 169d835e3b
chore(ci): Push docker image to GAR using OIDC. (#11255)
Because

- GCPv2 tooling uses GAR as the image registry. Registry authentication
is handled with OIDC.

This commit

- Changes CI to push to GAR.

# Validation
✔️ Successful CI job
[here](https://app.circleci.com/pipelines/github/mozilla/experimenter/43499/workflows/b825967e-cbca-4396-90ab-2a86831079d4/jobs/227478)

✔️ Image pushed to GAR

![image](https://github.com/user-attachments/assets/bdc91158-2709-4f41-a898-a7d7696936b3)
2024-08-29 13:22:04 +00:00
Benjamin Forehand Jr 46dd3aee06
chore(project): Change fenix integration tests to run off of upstream trigger. (#11233)
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
2024-08-27 20:41:33 +00:00
Benjamin Forehand Jr b2c32b516d
chore(ci): Add file path check to mobile recipe generator job. (#11203)
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
2024-08-20 15:04:40 +00:00
Benjamin Forehand Jr d317d83db6
chore(ci): Add proper branch filtering for recipe generator. (#11188)
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
2024-08-19 16:36:10 +00:00
dataops-ci-bot 431174467d
chore(nimbus): Update fenix apks for testing (#11171)
Co-authored-by: Benjamin Forehand Jr <bennyjr169@gmail.com>
2024-08-08 21:06:56 +00:00
Benjamin Forehand Jr c76b785463
Update fenix apks (#11169)
Because

- Builds were timing out on circleci

This commit

- Updates the builder to use the `xlarge` resource class on circleci

Fixes #11161
2024-08-07 22:42:19 +00:00
dataops-ci-bot d3e0afb016
chore(nimbus): Update fenix apks for testing (#11160)
Co-authored-by: Benjamin Forehand Jr <bennyjr169@gmail.com>
2024-08-06 15:51:01 +00:00
Benjamin Forehand Jr f1d5967761
test(nimbus): Add Firefox for iOS integration tests. (#11029)
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
2024-08-01 17:27:46 +00:00
dataops-ci-bot e861ddfb7e
chore(nimbus): Update fenix apks for testing (#11117)
Co-authored-by: Benjamin Forehand Jr <bennyjr169@gmail.com>
2024-07-30 18:58:26 +00:00
Jared Lockhart c2f6da762a
chore(nimbus): reduce number of remote settings integration tests (#11048)
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
2024-07-17 21:10:29 +00:00
Benjamin Forehand Jr f15d788c0a
chore(nimbus): Hard code experimenter docker repo in fenix integration tests. (#11046)
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
2024-07-17 19:57:44 +00:00
Benjamin Forehand Jr 4165866070
chore(nimbus): Fix fenix apk updater circleci logic. (#11037)
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
2024-07-17 14:22:48 +00:00
Charlie Humphreys 4e2727f4c1
feat(nimbus): push docker image with the short git sha as the tag (#11016)
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
2024-07-15 16:45:16 +00:00
Jared Lockhart ed0619628c
bug(nimbus): use docker-selenium 0.27.0 (#10948)
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
2024-07-04 16:51:04 +00:00
Benjamin Forehand Jr 77b403096e
chore(nimbus): Fix fenix integration tests to not use circleci cache. (#10934)
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
2024-07-03 18:26:43 +00:00
Benjamin Forehand Jr 73d1732823
chore(nimbus): Fix build step name for fenix updater. (#10917)
Because

- The step name is referencing another job

This commit

- Fixes the step name

Fixes #10916
2024-06-28 15:29:17 +00:00
Benjamin Forehand Jr 02039d1a04
chore(nimbus): Change fenix checker to run with update_config job. (#10914)
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
2024-06-27 20:17:22 +00:00
Benjamin Forehand Jr 5be2239eda
chore(nimbus): Add fenix apk build check based on moz-central (#10898)
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.
2024-06-27 14:36:57 +00:00
Benjamin Forehand Jr a7b0b08a9b
test(nimbus): Add android e2e test config. (#10844)
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
2024-06-24 18:56:10 +00:00
Barret Rennie d67b6b0d22
bug(nimbus): Correctly remove fetch-summary.txt (#10707)
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
2024-05-15 18:54:05 +00:00
Barret Rennie 3a55409fb6
bug(nimbus): Remove fetch-summary.txt (#10703)
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
2024-05-14 22:57:28 +00:00
Barret Rennie a4159f0fa5
bug(nimbus): Fix update_external_configs (#10698)
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
2024-05-14 15:44:54 +00:00
Barret Rennie 6b85233bbd
feat(nimbus): include Circle build URL in manifest update PRs (#10691)
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
2024-05-14 14:30:27 +00:00
Benjamin Forehand Jr d735d8fa7e
bug(nimbus): docker selenium build fix (#10547)
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
2024-04-24 19:37:23 +00:00
Jared Lockhart 03c57708ad
chore(project): remove duplicate test deploy (#10298)
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
2024-02-21 17:03:22 +00:00
Yashika Khurana 29b4452c94
chore(nimbus):Update gh token for external config (#10274)
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
2024-02-12 21:49:17 +00:00
Jared Lockhart b4ebc431db
bug(project): crash in application services megazord build (#10271)
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
2024-02-12 17:58:17 +00:00
Barret Rennie 38f43fc693
feat(nimbus): auto-update application-services (#10182)
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
2024-01-31 22:19:56 +00:00
Barret Rennie a4f33e5ebf
bug(cirrus): Revert "Run cirrus pytest command in verbose mode (#10084)" (#10175)
Because:

- #10084 stopped Cirrus tests from running in CI

This commit:

-  reverts commit aad815110c (#10084).

Fixes #10174.
2024-01-31 01:44:46 +00:00
Barret Rennie a9cceb323c
feat(nimbus): Upgrade sdk integration tests to modern application-services (#10148)
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
2024-01-26 19:16:00 +00:00
Priyanshi Gaur aad815110c
Run cirrus pytest command in verbose mode (#10084)
This commit
- runs `make cirrus_check` in verbose mode.

Fixes #9148

Signed-off-by: Priyanshi Gaur <noxdot1134@gmail.com>
2024-01-22 18:50:25 +00:00
Jared Lockhart cc0228eeec
chore(project): add a flag to disable/enable cirrus (#9916)
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
2023-12-07 19:50:36 +00:00
Barret Rennie 9c9fd6d687
feat(nimbus): Include fetch summary in update_external_resources PR (#9816)
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
2023-11-24 19:41:42 +00:00
Barret Rennie ce675297c1
bug(nimbus): Run should-pr.py with Python 3 (#9826)
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
2023-11-24 17:57:22 +00:00
Jared Lockhart 3985384ade
chore(nimbus): only run integration tests for a single app (#9762)
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
2023-11-23 20:48:41 +00:00
Barret Rennie 0def0132ae
feat(nimbus): don't open PRs for just ref-cache changes (#9807)
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
2023-11-22 18:46:35 +00:00
Barret Rennie 10be90af41
feat(nimbus): Fetch features from FML apps going back 5 versions (#9686)
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
2023-11-16 20:44:53 +00:00