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

70 Коммитов

Автор SHA1 Сообщение Дата
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