deploy MyCrossref
Background
MyCrossref deploys to https://crossref.gitlab.io/mycrossref/ already and is ready to try living in its production home.
Previously all frontend code has been hosted on S3/Cloudfront, with an entrypoint of the CS login page. Now MyCrossref will have it's own index.html - that will need to live somewhere.
Research suggests it would make sense to go with a containerised nginx which took environment variables in and templated them out into a format that the Vue app could consume on startup. Need to validate how this will work in practice with @jjshoe
Sounds like we can keep it all on S3/cloudfront, and invalidate the cache of index.html from CI when we want to deploy a new configuration. CI jobs will run to deploy different configs to staging, sandbox, production.
Versioning of the application code is already handled by Semantic Release.
MyCrossref should be deployed to both a staging and production location.
Use the dockerised configuration templating and injection approach outlined in The Research but run that container in CI to generate the updated config. Test that config in CI. Deploy that config to the correct environment.
Observed behavior
Expected behavior
How urgent
Definition of ready
-
Product owner: @SaraBowman -
Tech lead: @yaffol -
Service:: or C:: label applied -
Definition of done updated -
Acceptance testing plan: -
Weight applied
Definition of done
-
Unit tests identified, implemented, and passing -
Code reviewed -
Available for acceptance testing via a staging URL, or otherwise -
Consider any impacts to current or future architecture/infrastructure, and update specifications and documentation as needed -
Knowledge base reviewed and updated -
Public documentation reviewed and updated -
Acceptance criteria met -
MyCrossref deploys to S3 and cloudfront, including the index.html entrypoint -
Configuration is injected from environment variables in CI -
Configuration in provided to the Vue app by configuration that is templated out to index.html during the CI run -
Sanity checks are applied to the new config prior to deployment -
Configuration-only updates are easy to apply, without requiring a complete rebuild of the app
-
-
Acceptance testing passed -
Deployed to production