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

169 Коммитов

Автор SHA1 Сообщение Дата
Jared Lockhart 3d2146b67d
chore(project): push to a new dockerhub tag (#9753)
Because

* We have seen failures while pulling from dockerhub tags
* This may be caused by the tag being corrupted after being in use for
so long
* Let's try pushing to a new tag to see if we see the same failures

This commit

* Pushes to a new experimenter tag in dockerhub

fixes #9752
2023-11-15 22:27:05 +00:00
Barret Rennie 46b177f87e
bug(nimbus): hardcode dockerhub repo when pulling integration test image (#9717)
Because:
- #9712 broke integration tests on fork PRs by referencing
$DOCKERHUB_REPO, which is not available in fork PRs

this commit:
- hardcodes the dockerhub repo (mozilla/experimenter) for pulling the
image, which will allow fork PRs to run integration tests.

Fixes #9716
2023-11-09 22:59:01 +00:00
Barret Rennie ba85d17570
bug(nimbus): Fix integration tests by reverting #9694 (#9712)
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
2023-11-09 21:23:19 +00:00
Barret Rennie 338dc7bdd6
feat(nimbus): Fetch A-S megazords from Taskcluster (#9694)
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.
2023-11-08 18:40:54 +00:00
Barret Rennie aed924f210
bug(nimbus): don't use multiplatform builds in CI (#9697)
Because

- the default docker builder does not support multi-platform builds

This commit

- removes multi-platform build support from our Makefile.
2023-11-08 16:37:48 +00:00
Barret Rennie 0efd80acea
bug(nimbus): don't use cloud builder in CI (#9693)
Because

- we just disabled HydroBuild in CI (#9680)

This commit

- configures our CI to not use cloud builders.
2023-11-08 00:24:47 +00:00
Jared Lockhart ca44c60e73
fix #9679 chore(project): remove hydrobuild (#9680)
Becuase

* We were evaluating Docker Hydrobuild as part of its beta program
* We did not find that it improved CI times

This commit

* Removes Docker Hydrobuild from CI

Co-authored-by: Yashika Khurana <yashikakhuranayashika@gmail.com>
2023-11-07 22:04:05 +00:00
Yashika Khurana 51e43b776a
fix #9387 feat(cirrus): Cirrus demo app integration tests (#9658)
Because

- We have a demo app that can test the integration end to end, it has
the frontend and backend.
- We could stand up the experimenter, launch the experiment or rollout,
and push to RS, Cirrus can sync to RS and then the frontend can send a
request to the backend and then backend can reach out to Cirrus and can
ask for the feature config
- When the backend receives the response, can send the response back to
the frontend

This commit

- Tests end-to-end integration between the experimenter, RS, Cirrus, and
Demo app
- Test both the experiment and rollout end to end

fixes #9387
2023-11-03 19:47:01 +00:00
Jared Lockhart bba7fd789b
fix #9271 chore(project): dockerize schemas (#9616)
Because

* As we add a wider variety of elements to the Nimbus project including
binary packages it becomes increasingly important to have a consistent
environment for each of our modules
* Using Docker allows us to control the environment each module runs in
and use a consistent base layer
* Dockerizing the schemas package will allow us to use identical Python,
Node, and Rust environments as the other modules in Nimbus

This commit

* Wraps the schemas module in a Dockerfile that is consistent with the
other modules in Nimbus
2023-10-24 20:30:55 +00:00
Jared Lockhart 7a6274cdef
fix #9633 feat(project): push docker images to gcr (#9634)
Because

* We've been seeing consistent intermittent failures with pulling images
from dockerhub
* An alternative is to use the Google Container Registry instead of
Dockerhub
* If we have better luck with Google Container Registry then we can use
that and deprecate Dockerhub

This commit

* Pushes to Google Container Registry in addition to Dockerhub
2023-10-24 20:08:24 +00:00
Jared Lockhart 7d99a49089
fix #9536 chore(project): enable hydrobuild (#9580)
Because

* We enabled the experimental Docker Hydrobuild remote builder for our
CI jobs
* Hydrobuild experienced an outage that prevented our CI jobs from
running
* We disabled Hydrobuild until it could be rectified by the Docker team
* Fixes have been deployed and it should now be safe to re enable

This commit

* Re enables Docker Hydrobuild in CI
2023-10-16 17:20:47 +00:00
Jared Lockhart 612b09d474
fix #9545 bug(project): docker login necessary for deploy (#9546)
Because

* When we disabled hydrobuild we also disabled logging into docker
* Logging into docker is necessary at the deploy step

This commit

* Logs into docker if possible but disables hydrobuild
2023-10-03 23:35:25 +00:00
Jared Lockhart 52f59e2d75
fix #9543 bug(project): disable multiplatform builds (#9544)
Because

* We disabled Hydrobuild in #9535
* We must also disable the multiplatform builds in the deploy step if
Hydrobuild is unavailable

This commit

* Disables multiplatform builds in the deploy steps of Experimenter and
Cirrus
2023-10-03 22:10:12 +00:00
Jared Lockhart dae523a00d
fix #9535 bug(project): disable hydrobuild (#9537)
Because

* Docker Hydrobuild has stopped functioning and is blocking our CI tasks

This commit

* Disables Docker Hydrobuild until it is functioning and we can re
enable it
2023-10-03 20:47:05 +00:00
Jared Lockhart fffb23d3b2
fix #9509 bug(nimbus): add env file to fetch external configs in circle (#9510)
Because

* We recently moved the FML parsing into the Experimenter container as
part of fetching external configs
* The Experimenter container requires an environment file to start

This commit

* Uses the .env.sample file as part of the fetch_external_configs circle
task
2023-09-27 19:27:02 +00:00
Jared Lockhart b2bc1a8e47
fix #9472 chore(project): add arm64 support in circle (#9473)
Because
    
* We now include binary assets that must target both amd64 and arm64
* We must verify that these are available and functioning in CI
    
This commit
    
* Adds an arm64 instance for cirrus and experimenter check to verify
that our containers will build and run on both platforms
* Disables path checks for changes in the root project dir or .circleci
folder or on main branch so that we run all tests if anything project
wide changes
* Removes now redundant branch/main copies of experimenter since path
checks will be disabled on main
2023-09-22 17:12:30 +00:00
Jared Lockhart bca4573b9d
fix #9461 chore(project): parameterize setup docker in circle (#9462)
Because

* We have many tasks in Circle that depend on a Docker account
* The docker account depends on which module is being tested ie
Experimenter, Cirrus
* We should explicitly parameterize the Docker setup step with the
credentials needed for that module

This commit

* Parameterizes the setup_docker step in circle
* Uses the appropriate credentials for each of Experimenter and Cirrus
in each circle task
2023-09-21 15:29:12 +00:00
Jared Lockhart 2e26b7eb8e
fix #9458 bug(cirrus): use cirrus credentials to log into dockerhub (#9459)
Because

* The docker login step for deploying cirrus was removed in a previous
pr
* This login step is necessary becuase cirrus uses different credentials
than experimenter to deploy to dockerhub

This commit

* Restores the docker login command to the cirrus deploy step
2023-09-20 20:55:51 +00:00
Jared Lockhart 42db38a9a3
fix #9451 chore(project): build multiple docker platforms in circle (#9452)
Because

* We can now target multiple platforms in our Docker builds in Circle

This commit

* Enables multiplatform builds for Docker in Circle
2023-09-20 20:30:37 +00:00
Jared Lockhart bc27ee215a
fix #9443 bug(project): disable hydrobuild for prs (#9446)
Because

* Docker Hydrobuild requires access to environment secrets
* PRs from forks will not have access to environment secrets

This commit

* Disables hydrobuild for PRs that do not have access to secrets
* Re enables Circle docker layer caching

---------

Co-authored-by: Mike Williams <102263964+mikewilli@users.noreply.github.com>
2023-09-19 19:13:51 +00:00
Jared Lockhart c44fb70587
fix #9391 chore(project): use docker hydrobuild (#9392)
Because

* We now have access to Docker Hydrobuild
* This allows us to use a shared cloud builder for our docker images so
we can share a build cache between CI and local dev

This commit

* Updates the makefile to explicitly use docker buildx
* Updates the circle config to install the latest docker client and
setup a cloud builder
2023-09-15 20:17:24 +00:00
Mike Williams 60d6c69389
fix #9156 feat(schemas): typescript schema generation and npm publish (#9157)
Because

- we want to use the population sizing schemas for graphql and UI

This commit

- sets up generation of typescript schemas from the pydantic schemas
- sets up publishing the typescript schemas to npm
2023-08-11 20:56:49 +00:00
Charlie 52817e4ba1
Fix #9073 feat(cirrus): Record enrollment metrics (#9140)
Because

- Enrollment metrics are necessary for experiment analysis

This commit

- Defines the method by which the Cirrus container records enrollment
metrics

---------

Co-authored-by: yashikakhurana <yashikakhuranayashika@gmail.com>
2023-07-21 20:04:47 +00:00
Jared Lockhart d6543f7209
fix #9133 chore(project): fix make check schemas command in circle (#9134)
Because

* We recently renamed some commands in the circle config for consistency
* We accidentally broke the make command for checking the schemas
* It was missed because they didn't run becuase they failed the path
check

This commit

* Fixes the make check schemas command in the circle config
2023-07-17 15:22:52 +00:00
Jared Lockhart bdac24c367
fix #9107 chore(cirrus): Push to dockerhub (#9118)
Because
    
* Now that the cirrus container is ready for use we need to deploy it to
dockerhub
    
This commit
    
* Adds a circle step to build and deploy the cirrus container to
dockerhub

Co-authored-by: yashikakhurana <yashikakhuranayashika@gmail.com>
2023-07-14 14:13:27 +00:00
Mike Williams 843d31722d
fix #8983 fix(schemas): make schemas deploy dependent on install and build (#8984)
Because

- twine isn't installed until poetry installs dependencies
- `poetry build` doesn't install dependencies

This commit

- adds the `schemas_install` to the deploy's prereqs
2023-06-15 20:29:52 +00:00
Mike Williams 850ae9327f
fix #8981 fix(schemas): use make commands for schemas deploy (#8982)
Because

- the circle config was assuming package directory
- the circle working dir was not set
- the circle image could not find the package to build/deploy

This commit

- uses make commands that drop into the correct directory before
building and deploying
2023-06-15 18:12:45 +00:00
Mike Williams 6024f10d82
fix #8848 feat(nimbus): add pypi publishing of schemas package (#8939)
Because

- we want to use the new schemas in various places

This commit

- sets up automatic publishing to PyPI
2023-06-15 17:38:01 +00:00
Jared Lockhart 72783b9313
fix #8958 bug(project): run experimenter unit tests in circle (#8959)
Because

* We recently refactored the circleci config to update the path checks
* In the course of doing so we removed the command to actually run the
experimenter unit tests. Whoops!

This commit

* Restores the make check command to the experimenter unit tests in
circle
2023-06-13 06:23:09 +00:00
Jared Lockhart 487392b7c3
fix #8306 chore(project): update circle file path checks (#8949)
Becuase

* The experimenter repo now hosts many projects
* Not all tests will be related to changes in all of those folders
* We can conditionally check which tests to run based on the paths of
changes in a PR

This commit

* Updates all of the file path checks on all of the circleci tasks so we
don't run unnecessary tests in PRs
2023-06-12 19:13:07 +00:00
Mike Williams a2de3aebd3
fix #8842: add jetstream/analysis schemas (#8847)
Because

- We want to have a better data contract between Jetstream and
Experimenter

This commit

- Creates schemas for the data products that Jetstream produces
- Adds a general python package structure with basic schema tests
2023-06-09 20:12:34 +00:00
Jared Lockhart 453255c31f
fix #8839 chore(project): update circleci images (#8905)
Because

* We haven't updated our circle images in 2 years

This commit

* Updates to the latest circleci images
2023-06-06 14:50:47 +00:00
Benjamin Forehand Jr 1c3f002612
fix #8827 chore(ci): Enable reruns for integration tests on CI (#8840)
Because:
* We disabled reruns locally and on CI

This commit:
* Re-enables reruns on CI
2023-05-18 17:30:05 +00:00
Jared Lockhart aeeae52d7e
fix #8707 bug(project): check not running on main (#8838)
Because

* We run make check on each branch but also on main before deploys
* This last check is to make sure that main is still in a healthy state
before it is deployed
* We added path filters to prevent certain circle tasks from running
depending on which files were changed
* This path filter was preventing make check from running on main

This commit

* Splits the check job into two, one for branches that includes the path
check, and one for main that excludes it
2023-05-16 16:57:55 +00:00
Jared Lockhart fb1123c751
fix #8767 bug(nimbus): disable parallel for enrollment tests (#8768)
Because

* We've been seeing intermittent failures in the enrollment integration
tests
* It may be caused by parallel tests colliding when they reset the ping
server cache

This commit

* Disables parallel runs for the enrollment integration tests
2023-05-02 21:35:30 +00:00
Benjamin Forehand Jr 9e155c49e1
fixes #8744 chore(Nimbus): Add HTML report generation and gathering for integration tests (#8745)
Because:

* Diagnosing errors on CI can be hard without seeing what the page looks
like

This Commit:

* Adds HTML reporting which will include screenshots for debugging
errors.
2023-04-24 18:44:36 +00:00
Jared Lockhart 2acefcedda
fix #8705 chore(project): check file paths in nightly targeting tests (#8706)
Because

* We only need to run the targeting tests for changes in the experiments
or targeting apps
* We were checking those file paths in the release and beta circle runs
but not nightly

This commit

* Adds the correct file path checks to the nightly targeting run
2023-04-18 18:50:57 +00:00
Benjamin Forehand Jr 179607bc61
fix #8665 chore(nimbus): Add a wait to every element search command for the integration tests (#8666)
Because:
* Having to add waits to each method can be time consuming

This Commit:
* Adds a default wait for every time we need to search for an element.
2023-04-17 19:52:43 +00:00
Yashika Khurana 37d08c9348
fix #8386 chore(nimbus): Add ruff and circle ci check for cirrus (#8497)
Because

- We want to add a linter on the Cirrus service and wanted to have CI
runs the cirrus check

This commit

- Add [Ruff linter](https://pypi.org/project/ruff/) 💪 
- New circle ci job for `cirrus_check`
- Cirrus check - runs the test case and ruff linting
- New make command for check `make cirrus_check`
- New make command to fix formatting issues using `make
cirrus_code_format`
- Circle ci cirrus check will only run if the changes are in `/cirrus`
directory
- Experimenter check will only run if the changes are in `/experimenter`
directory
- Remove requirements.txt and uses poetry only
closes #8386 #8388
2023-03-15 11:59:28 -07:00
Yashika Khurana 7855bbf1eb
fix #8360 feat(nimbus): Change root folder app to experimenter (#8375)
Because

- We will be adding cirrus in experimenter

This commit

- Rename `app` to `experimenter` and make necessary changes
2023-03-08 13:36:51 -08:00
Jared Lockhart 0083f47b21
fix #8282 chore(project): consistent integration test naming (#8283)
Because

* Now that we have so many different integration tests
* We should try to keep the naming of all the tests and circle tasks
consistent

This commit

* Renames the integration tests and circle tasks to be more consistent
2023-02-08 11:16:59 -06:00
Benjamin Forehand Jr 87eb4020da
fix #8165 bug(nimbus/ci): Rust weekly builds not building (#8166)
Because:
* Looking over the build logs on circleci I noticed that most of the
builds weren't building

This commit:
* Fixes the docker commands so that the logic for building the image has
the needed data.

ps: I still suck at docker
2023-01-19 11:49:16 -06:00
Benjamin Forehand Jr 263829b6b5
fix #7992 feat/test(nimbus): Add sentry to monitor our integration tests (#8140)
Because:
* Tracking down errors within flakey integration tests can be quite
difficult.

This commit:
* Adds a library to report test errors to sentry.

With sentrys rich logging and stacktraces, this will help us identify
what is causing a flakey test much quicker than before.
2023-01-12 16:45:06 -06:00
haroldwoo 5ac95c644a
update circleci ssh fingerprint (#8118)
for manually added read/write deploy key
2023-01-09 10:22:03 -08:00
Benjamin Forehand Jr d4fabfe9a3
fixes #8109(nimbus): Update test config for new rust image and add steps to build the image weekly (#8110)
Because:
* Our nimbus-rust image was falling behind on its Application services
versioning

This Commit:
* Updates the image and adds its Dockerfile to this repo
* Adds a cron job to build weekly
2023-01-04 12:00:47 -06:00
Benjamin Forehand Jr 28caa2a594
fixes #8079 bug(nimbus): Update circleci desktop targeting tests (#8080)
Because:
* I noticed the desktop targeting tests were running tests against
non-desktop targeting configs.

This Commit:
* Changes the tests to run only on desktop
* Updates the amount of parallel test runs that are ran
2022-12-19 14:06:18 -06:00
Benjamin Forehand Jr e94a94174d
fixes #7889 feat(nimbus): Change circleci test jobs to be more descriptive (#7890)
Because:
* Currently we run a lot of parallel jobs on circleci and it can be a
bit hard to sort through which job does what tests

This Commit:
* Changes the workflow on circleci to be more descriptive so it is
easier to see which tests are passing or failing
2022-11-03 12:18:49 -04:00
yashika-khurana 79d2a4c280
fix #7661 chore(nimbus): Update integration_sdk_shell command (#7662)
* fix #7661 chore(nimbus): Update command

* fix #7661 chore(nimbus): Build prod

* fix #7661 chore(nimbus): Build prod
2022-09-02 12:14:36 -04:00
yashika-khurana 235cee181a
fix #7663 chore(nimbus): Run integration test on updation of tests (#7664)
* fix #7663 chore(nimbus): Run integration test on updation of tests

* fix #7663 test(nimbus): Fix test cases

* fix #7663 chore(nimbus): Avoid checking tests file

* fix #7663 chore(nimbus): Add app tests
2022-09-01 16:15:17 -05:00
Benjamin Forehand Jr 3c4fd8e95c
fixes #7592 test(nimbus): Added end-to-end test for telemetry verification during enrollment and unenrollment (#7634)
* fixes #7592 type(test): Added end-to-end test for telemetry verification during enrollment and unenrollment

Because
* Making sure telemetry is sent when a client enrolls and unenrolls is very important. We did not have automated tests for this though

This Commit
* Adds automated checks for telemetry enroll/unenroll events.

Since this test can take a varying amount of time to complete, I utilized pytest-xdist to group tests so that this test can be run immediately, to save time.
I also had to write a ping server to collect and verify the pings, that is included in this PR.
2022-08-25 10:30:10 -04:00
Jared Lockhart 5831b5c3b4
fix #7601 bug(nimbus): check for remote and local diff in external config task (#7604)
Because

* The circle task to update external configs was repeatedly force pushing the same changes and triggering redundant CI runs
* We added a fix to check whether the local commit is different from the latest remote commit in the same branch
* However, after an external config PR is merged, its branch is deleted
* Later when the circle task wakes up and tries to detect if there's a change, it will fail when it tries to diff against the remote branch which was previously deleted

This commit

* Attempts to diff against the remote branch and if that fails, checks for a local diff
* This should prevent it from pushing duplicate commits when a pr exists, but still allow it to create a pr when none exists
2022-08-16 14:13:30 -04:00
Jared Lockhart cb04780f13
fix #7572 chore(nimbus): prevent force pushing external config if pr exists (#7594)
Because

* When external configs change, we will automatically commit and create a pr
* If a pr already exists, we are force pushing changes on every run which forces CI to needlessly re run

This commit

* Checks if the new commit is different from the commit that exists before force pushing to prevent CI from re running
2022-08-15 12:12:25 -04:00
Benjamin Forehand Jr ef6d7d2893
fix #7519 chore(project): Re-enable Legacy Integration and JS tests on CI (#7586)
* fix #7519 chore(project): Re-enable Legacy Integration and JS tests on CI.

Because

* We are still supporting the use of legacy for the forseable future, so we should make sure that changes added to the codebase don't affect legacy in a negative way.

This commit

* Re-enables legacy integration tests on CI.
* Re-enables legacy JS tests as part of the check job on CI.
2022-08-10 14:24:17 -07:00
Jared Lockhart 899a6503b9
fix #7565 chore(nimbus): only suppress exit code for pr creation in external config task (#7566)
Because

* We only need to suppress the error code of the pr creation command in the external config circle task
* If we suppress the others they could fail for some unexpected reason and we'd never be notified

This commit

* Only suppresses the exit code of the pr creation command
2022-08-02 14:43:55 -06:00
Jared Lockhart 3c87d40ceb
fix #7559 chore(nimbus): fail silently in external config circle task (#7562)
Because

* The hourly circle task to check for changes to external config files will fail if there are no changes
* The failures are logged and notified as circle failures
* This can mask an actual failure

This commit
* Changes the task to exit 0 if no changes are detected
2022-08-02 12:34:03 -07:00
Jared Lockhart ebbfc569aa
fix #7496 feat(nimbus): load external configs hourly (#7539)
Because

* We want to update the external configs for jetstream and features automatically
* We want updates to those files to be tested as part of CI

This commit

* Adds a new circle task to check for updates in external configs hourly
* If changes are detected, automatically create a PR
2022-07-27 14:04:57 -07:00
Benjamin Forehand Jr e4863f2360
Fix weekly firefox docker builds (#7503) 2022-07-12 12:32:46 -07:00
Benjamin Forehand Jr f2c54b744a
Add changes to push firefox images to docker. (#7473) 2022-07-06 12:04:57 -05:00
Benjamin Forehand Jr 2c17c65852
Fix weekly firefox builds. (#7471) 2022-06-29 17:28:12 -07:00
Benjamin Forehand Jr 2a098c8edc
Add check to circleci skip job if no changes are detected. (#7467)
* Add check to skip job if no changes are detected.

* Remove a path.

* Remove a path check.
2022-06-29 16:32:13 -04:00
Benjamin Forehand Jr 1e803f44b6
fixes #7409 chore(nimbus): Allow integration testing against multiple firefox versions (#7414)
* fixes #7409 chore(nimbus): Allow integration testing against multiple firefox versions.

* Updated builds to cron job and added fresh nightly build script

Co-authored-by: Benjamin Forehand <b4hand@MSI.localdomain>
2022-06-27 15:31:38 -05:00
Jared Lockhart 5f9bc0a4e0
chore(nimbus): rename circle tasks (#7384)
Because

* Now that we have integration tests for both desktop and the sdk
* We should clearly label both with what they're testing

This commit

* Renames integration_nimbus to integration_nimbus_desktop
* Renames integration_nimbus_rust to integration_nimbus_sdk
2022-06-08 14:57:14 -04:00
Benjamin Forehand Jr 1a5b3f9e2c
fixes #7300 feat(nimbus): Add integration testing between the SDK and experimenter. (#7301)
* fixes #7300 feat(nimbus): Add integration testing between the SDK and experimenter.
2022-06-07 09:31:50 -07:00
Jared Lockhart 2745d4b216
fix #7254 chore(project): reduce circle make duplication (#7255)
Because

* Each call to make will trigger many remote fetches
* Having multiple subsequent make calls will repeat those same fetches
* Combining multiple make calls into a single call will only make the fetches once

This commit

* Moves multiple make calls into a single make call in circle where possible
2022-05-04 16:56:43 -04:00
Jared Lockhart aba58ac80e
fix #7189 chore(nimbus): deprecate storybook (#7198)
Because

* Storybook is no longer used by anyone to test or validate UI changes
* Maintaining storybooks for components adds significant cost to UI changes

This commit

* Removes storybook
2022-04-18 15:21:40 -07:00
Jared Lockhart 1b9ffc4c68
chore(project): update docker desktop docs (#7095)
Because

* At some point we had to hard code a docker version in the docs because subsequent versions were broken
* This is no longer the case

This commit

* Updates docs to point to the latest docker desktop
2022-02-23 11:28:42 -06:00
Jared Lockhart 597b261d2d
fix #6828 chore(project): disable legacy tests and dev services (#6829)
Because

* The legacy workflow is in maintenance only mode and has not had any changes or failures in over a year

This commit

* Moves the legacy tests out of make check but preserves them in make check_legacy
* Moves the legacy dev services out of make up but preserves them in make up_legacy
* Removes the integration_legacy job from circle
2022-01-03 14:43:53 -08:00
Jared Lockhart e248f6ceec
chore(project): update circle image (#6520)
Because

* There is a new circle image with latest ubuntu/docker versions

This commit

* Updates to the latest circle image
2021-10-12 10:36:39 -07:00
Benjamin Forehand Jr 300f3fd51c
fix 6308 - Validate targeting configs for desktop on CI. (#6437)
* fix 6308 - Validate targetting configs for desktop on CI.

* Change baseclass.

* Added browser model.

* Remove locale and country logic.

* Add extra parallel job.

* Add json url fixture.
2021-09-21 11:19:29 -06:00
Jared Lockhart f0c303a7ca
fix #6305 chore(nimbus): add archiving integration test (#6333)
Because

* We should add a simple integration test for each new major feature we add

This commit

* Adds an integration test for archiving
* Splits the integration tests into two groups
  * Tests that run for each application (for remote settings integration)
  * Tests that only run once (for things constrained just to experimenter UI)
* Adds a random identifier to the end of integration test experiments to allow rerunning tests locally
* Cleans up the page load wait locators
2021-09-01 10:47:22 -07:00
Jared Lockhart 1065fe39f8
chore(project): re-enable circle docker layer caching (#6334)
Because

* We previously used circle docker layer caching to speed up circle runs
* While migrating to the shared build cache, some confusing errors appeared
* We disabled it to see if that cleared up the issue
* Circle builds have been stable lately using the shared layer cache, but each circle run takes a significant amount of time to pull in remote images
* It's worth trying to re enable it to see if we can get both the circle caching and shared layer cache working together properly

This commit

* Re enables circle docker layer caching
2021-08-31 13:33:58 -04:00
Benjamin Forehand Jr 463b8f3035
Fix #6309 - Initial attempt at adding parametrization to e2e tests. (#6273)
* Initial attempt at adding parametrization to e2e tests.
2021-08-25 14:57:51 -07:00
Jared Lockhart 4570368cf9
fix #6038 chore(project): cache docker ui layer (#6092)
Because

* We have a fourth layer in our Dockerfile that we're not remotely caching which slows down local builds/ci

This commit

* Builds and pushes the ui build target in our Dockerfile in circle
2021-07-30 13:50:12 -04:00
Jared Lockhart d2e6373670
fix #6003 chore(project): disable circleci docker layer caching (#6006)
Because

* We recently started using the new buildkit shared caching to speed up our docker builds
* Today we saw strange obscure failures that seemed to mysteriously resolve by themselves
* Circle and Dockers shared layer caching strategies may not cooperate nicely
* In theory we should be able to get away with using only one
* The Circle layer caching costs money

This commit

* Disables Circle Docker layer caching
2021-07-19 15:02:40 -07:00
Jared Lockhart 0efe7543c2
fix #5977 chore(project): only generate version.json on deploy (#5978)
Because

* We recently reorganized our build steps
* We moved version.json generation from the deploy step to all builds
* version.json changes on every circle invocation which can invalidate shared docker caches

This commit

* Moves version.json generation back to only during deploy
2021-07-16 16:59:47 -03:00
Jared Lockhart 4c0df6b262
fix #5946 chore(project): cache docker layers in dockerhub (#5948)
Because

* It would save time if we push the docker build layers from circleci to dockerhub to reuse locally

This commit

* Uses the new buildkit --cache-from flag to pull in build layers from dockerhub when applicable
* Builds all stages and pushes them with their layers to dockerhub on every merge to main
* Configures local builds to pull those layers from dockerhub
* Removes the build circle stage since each circle task will now be able to pull from dockerhub rather than the local circle docker cache
2021-07-15 11:37:09 -04:00
Benjamin Forehand Jr 124494a2de
Initial commit adding e2e live test. (#5389)
* Initial commit adding e2e remote settings live test.

* Review updates

* Remove recursive flag.

* Fix typo.
2021-06-10 11:34:57 -06:00
Jared Lockhart 2b4abed886
chore(project): add nimbus integration tests (#5032)
Because

* We now have an integration test suite for nimbus we want to enable in circle

This commit

* Enables both the legacy and nimbus integration tests in circle
2021-04-14 17:04:03 -04:00
Benjamin Forehand Jr e7819a35b0
Initial commit adding e2e integration tests for nimbus frontend. (#4988)
* Initial commit adding e2e integration tests for nimbus frontend.
2021-04-14 14:04:31 -06:00
Jared Lockhart ddf4d06dd6
chore(nimbus): add make kill to all make test commands (#4990)
Because

* I just noticed while debugging another issue that circle only has app and db containers running while it runs tests, and if you make bash or up and have other containers running like redis or kinto or autograph, those can cause stateful changes to the test environment such as if a test is attempting to invoke a celery that hasn't been mocked out, having redis running in the background will allow that test to pass, so then it looks like the test is failing in circle and passing locally becuase you have redis up which can be confusing

This commit

* Runs make kill before starting any test so that if we hit a situation like that again, local testing should more closely replicate circle
2021-04-06 13:36:36 -04:00
Jared Lockhart 575bca797c
fix #4833 chore(project): update ubuntu, docker, nginx (#4834)
Because

* The latest version of Docker breaks with nginx 1.9.9

This commit

* Updates our circle image to ubuntu-2004:202101-01 - Ubuntu 20.04, Docker v20.10.2, Docker Compose v1.28.2
* Updates our nginx image to 1.19.8
2021-03-17 12:40:53 -04:00
Jared Lockhart 8e07f554f6
fix #4750 chore(project): use makefile to build deploy container (#4751)
Becuase

* We recently added a dependency on checking out the git submodule for jetstream config to our build process
* We added that dependency to the makefile
* The circle config to build the deploy container was not using the makefile entry point to build the container
* Jetstream was not being pulled in before deploy build
* The system check we added to prevent starting worked correctly!

This commit

* Switches circle to use the makefile to build the deploy container
2021-03-03 13:28:22 -05:00
Jared Lockhart ce2915e615
fix #4703 chore(project): reduce integration test circle instance size (#4710)
Because

* We increased the instance size in an attempt to reduce integration test errors we were seeing in Firefox
* The increase in size didn't mitigate the errors

This commit

* This reverts commit 1ab43e6494.
2021-02-25 17:12:50 -05:00
Jared Lockhart 1ab43e6494
fix #4700 chore(project): increase integration circle instance size (#4702)
Because

* We've recently seen some intermittent integration test failures
* The errors are from firefox running out of file handlers, which might indicate a resource constraint issue

This commit

* Increases the integration test circle ci instance size to mitigate
2021-02-24 16:21:15 -05:00
Jared Lockhart 262cf1de0a
chore(project): disable deprecated tests (#4043)
Because

* We are now migrating all visualization work out of rapid and into nimbus
* All of the legacy/core ui is in maintenance mode
* Tests take up a lot of circle credits

This commit

* Disables all but the end to end integration tests for the legacy workflow
* Disables all of the rapid/visualization js tests/linting
* Disables the rapid/visualization dev yarn processes
* Decreases the size of the make check circle instance
* This should make the local dev lighter, make our tests faster, and reduce circle usage
2020-11-19 12:14:29 -05:00
Jared Lockhart a9ae0ee14f
chore (project): run build on main (#3945)
Because

* We want to run check on main and check requires build

This commit

* Enables build on main.  Derp.
2020-11-09 18:37:14 -05:00
Jared Lockhart d0c3cd134c
chore(project): run make check on main (#3943)
Because

* We disabled the `up to date with main` branch protection, it's possible for changes that work as a pr to land on main and break main

This commit

* Gates deploying on running `make check` on main so if a pr lands on main that breaks we'll catch it before it gets deployed
2020-11-09 18:27:06 -05:00
Les Orchard 2cb1fc6ba6
chore(project): enable storybook ci task for main branch (#3901)
Because:

* We'd like to be able to compare storybooks between main branch and
  other branches (e.g. PRs)

This commit

* Enables publish_storybooks for main branch in CI
2020-11-05 11:22:35 -08:00
Jared Lockhart a0c23e7df9
chore(project): disable all ci tasks except deploy for main (#3899)
Because

* I forgot to ignore main for all ci pr tasks

This commit

* Disables all ci pr tasks on main
2020-11-05 10:42:46 -05:00
Jared Lockhart 1026dd0f6a
fix #3894 chore(nimbus): publish storybooks in separate ci task (#3895)
Because

* It would be nice to run the storybook publishing in parallel, and
* It would be nice to have a published storybook for a PR even if it hasn't yet got passing tests or complete test coverage

This commit

* Moves storybook publishing to a separate circle ci task
2020-11-04 20:55:12 -05:00
Jared Lockhart c32ebeac8b
fix #3857 chore(nimbus): check graphql types during make check (#3892)
Because

* It would be nice to know if the backend changed that the frontend would break

This commit

* Adds make commands to check and fix that the graphql types match the nimbus-ui types
* This will cause CI to break if a backend change would break the frontend
2020-11-04 17:28:13 -05:00
Jared Lockhart 18daeee52d
fix #3824 chore(project): update circle to build deploy image (#3825)
Because

* I changed the layout of the docker containers to have separate dev/build/deploy stages

This commit

* Update the circle task to build the deploy image
2020-10-26 14:43:50 -04:00
Jared Lockhart 08c96db5d2
fix #3687 chore(project): run integration tests against deploy image (#3822)
Because

* We split the docker image into two images, one for local dev and one for deploying to prod so that the prod one would be small ~100mb
* We should find some way to test that the deploy image is working correctly
* A good candidate is to run the integration tests against it

This commit

* Adds a new make up_prod command that sets up an environment that more closely mirrors prod ie
  - Use the prod image
  - Disable all the yarn watchers
* Reorganizes the dockerfile to move frontend asset building out of the dev container to increase docker cache hits for local dev
2020-10-26 12:26:09 -04:00
Jared Lockhart 2d11121b1b
fix #3480 chore(project): use docker caching for circle deploy (#3694)
Because

* The circle deploy task runs after every PR lands and it's not being cached it takes ~10m to rebuild everything from scratch every time

This commit

* Enables docker layer caching for the deploy task which means in the common case it should take <1m
* Bump to the latest circle docker image
2020-10-08 12:29:55 -04:00
Jared Lockhart 0554fa9c57
fix #3634 chore(project): Use separate build and deploy Docker images (#3642)
Because

* We want to shrink the size of the deployable Docker image down from its current 2.71gb(1gb compressed)

This commit

* Adds a second stage to our Dockerfile for a deploy image which is a much more reasonable 480mb(133mb compressed)
* Use deploy image for Django container in local dev compose
2020-10-05 13:54:15 -04:00
Les Orchard 92671e9b4d
chore(nimbus-ui): hook up storybook publishing on build (#3579)
Because

* We want to publish Storybook builds to demo and preview component work
  in nimbus-ui

This commit

* Integrates mozilla-fxa/storybook-gcp-publisher into the CircleCI flow
  so that Storybooks are built and published to a Google Cloud static
  site for every test run

EXP-281
fixes #3427
2020-10-01 10:39:53 -07:00
Jared Lockhart 75489ddd58
fixes #3503 chore: Run circle on dependency prs (#3559)
Because

* Running circle jobs against each individual dependency PR makes it easier to know
  if a single dependency change breaks the build rather than having to only run tests
  against all dependencies combined

This commit

* Enables circle jobs on dependency PRs
2020-09-28 15:09:50 -04:00
Jared Lockhart 08707d81b7
Update circle for integration tests fixes #3099 (#3100) 2020-07-23 16:46:12 -04:00
Jared Lockhart d8a6297031
Ignore dependency prs in circle fixes #3021 (#3022)
* Ignore dependency prs in circle fixes #3021

* Circle syntax error

* Ah it needs to match the source branch using a regex
2020-07-10 17:31:33 -04:00
Jared Lockhart 3169d054aa
Rename master to main fixes #2949 (#2950) 2020-06-30 13:52:09 -04:00