* Amend all usage of docker-compose to be docker compose
This is because the ubuntu-latest GHA image no longer supports the V1 compose API, which was breaking our CI.
https://github.com/actions/runner-images/issues/9692
This is a wholesale change, to ensure consistent use of the v2 syntax
* Address subtle container-naming change brough in with docker compose v2
With v1 we had Selenium Grid name containers ..._selenium-hub_1, but with v2
that changed to ...-selenium-hub-1, causing the jq filter to miss when trying
to extract the IP we needed.
* Remove now-redundant docker-compose.yaml version key
To test this, I did `make build prod` to build a new release image, locally,
then shelled in:
$ pwd
/app
$ ls static/admin/css
autocomplete.4a81fc4242d0.css dark_mode.ef27a31af300.css nav_sidebar.269a1bd44627.css rtl.css
autocomplete.css dashboard.css nav_sidebar.css vendor
base.523eb49842a7.css dashboard.e90f2068217b.css responsive.css widgets.css
base.css forms.c14e1cb06392.css responsive.f6533dab034d.css widgets.ee33ab26c7c2.css
changelists.9237a1ac391b.css forms.css responsive_rtl.7d1130848605.css
changelists.css login.586129c60a93.css responsive_rtl.css
dark_mode.css login.css rtl.512d4b53fc59.css
I also compared this with a release image made yesterday, before this change:
$ pwd
/app
$ ls static/admin/
ls: cannot access 'static/admin/': No such file or directory
* Adding cdn tests
Using a cdn mark to allow skipping or only running the cdn tests
uses ssllabs to get the tls/cipher information
That can be fairly slow, so trying to ensure it only happens once per run - so caching to a json file
* migrating existing tests into the functional area
* formatting failed in circle
* 10614: Add pre-commit hook for including the MPLv2
Adds to Python, JS, SCSS, Jinja HTML, Fluent templates and shell scripts
Note that the order of application of the hooks is important - we want to add a missing license before we check the formatting of files
* 10614: Update MPLv2 comments on all templates to match standard format produced by pre-commit hook
* Updates existing MPLv2 text to use a https URL
* Amend a handful of Fluent templates that used a token instead of the string "Mozilla" - this standardised things; translation was not used or needed
* Add missing MPLv2 where needed
* Update three tests that regressed with these changes, above
* 10614: Update pre-commit config to not add MPL to JS libraries; Remove MPL from the four files which should not have had it
Have the app download the right data on startup. If that fails it won't
start the app and so the deployment will fail, but the existing
deployment will stay up.
* Move from django-pipeline to Gulp for static-assets
* Use Gulp tasks to compile less and sass
* Use Gulp tasks to concatinate files into bundles
* Use Gulp tasks to minify files for deployment
* Use Gulp tasks for development to watch for changes
* Use BrowserSync to serve development static files and refresh the
in-progress page
* Update Docker setup to use multi-stage build
* Update Makefile to build and run the docker setup
* Update docs to recommend Docker-based development
* Update deployment and testing to also use the Makefile
* Add rebuild of SASS bundles when library files change
* Add an intermediate build directory just for LESS and SASS
* Avoid issues with ambiguous imports when .css and .scss in the same
directory
* Set deployment docker image in git env var script
A.K.A The Sqlitening!
This removes bedrock's depenence on a database server and moves to
downloading pre-built sqlite database files from s3 on a schedule. There
is also a clock process that will update and upload such a database on a
schedule as well. This should mean more stability, speed, and
reliability for bedrock, as well as quicker development due to easy to
download pre-populated databases.
* Revert "Fix container names in integration tests (#5386)"
This reverts commit aec7d9ca7b.
* Revert "Use branch name in test container names; avoid conflicts (#5385)"
This reverts commit 24abfb303d.
If you try a deployment of two branches with the same commit
(e.g. master and prod) it will often fail due to conflicting
container names when they were just using commit hash. Adding
the branch name should eliminate these failures.
* No longer rely on release notes JSON files on the file system.
* Switch everything to new update_release_notes_data command
* Move to using django-memoize for releasenotes caching
Will allow us to simplify bedrock by not installing RNA.
Remove:
* django-mozilla-rna
* django-restframework
* django-synctool
Do markdown conversion on load of release: Helps with cache and perf.
Add tests for new release models
Add a management command to generate a sitemap and update deployment
to generate and include it in the builds.
Thanks to @kyoshino in PR #1333 for most of the basis of this work.
* Fix demo deploy and update docs.
* Make it work with deis1 and deis2
* Enforce max 63 char app names
* Fix SSL redirect for Deis v2 clusters. Allow settings per cluster.
* Improve env file handling and combination for demo deploys
* Use new envcat utility
* Deploy our dev, stage, and prod apps to virginia and tokyo clusters
Turns out LinkChecker checks for a good version of python-requests
in a dumb way, so it sees version "2.13.0" as being lower than
"2.2.0". Also the project seems to have been abandoned, so there
isn't a newer release, though it seems this issue has been fixed
in the master branch.
Easiest fix is to just downgrade requests to the latest version
that is < 2.10.0, which is what I've done.
This means that we can push dev l10n to www-dev and prod
l10n to stage and prod. Currently they all get prod l10n
at deployment then dev updates when cron runs.