Rough notes on CI/CD

This commit is contained in:
James Polley 2018-06-17 15:22:49 +10:00
parent fc7bb77214
commit ab1c129c20

View file

@ -144,3 +144,31 @@ After conference Sections have been created, this command will add
Permission objects for those sections. Permission objects for those sections.
``./manage.py create_review_permissions`` ``./manage.py create_review_permissions``
CI/CD Workflow
~~~~~~~~~~~~~~
4 stages:
1. Dev Review apps
2. dev.lca2019.org
3. staging.lca2019.org
4. linux.conf.au/lca2019.org (not yet live)
- Driven by `.gitlab-ci.yml`
Stages 1 and 2 use sqlite databases; fixtures in the repo are loaded when the container starts but there is no persistent storage - *except* that stage 2 has some persistence of admin accounts. Stages 3 and 4 have (seperate) mysql backends which persist between deploys.
Stages 2-4 use SSO for login; stage 1 has admin accounts defined in fixtures.
All commits to any dev/* branch create a dev review app; for instance, a commit on dev/tchaypo/reviewapps becomes available at http://dev-tchaypo-reviewapps.dev.lca2019.org (for now you'll need to add `35.189.5.101 dev-tchaypo-reviewapps.dev.lac2019.org` to /etc/hosts for this to work.)
Once a commit is accepted into `/dev/2019` it will also be auto-deployed to `https://dev.lca2019.org`.
Once it's been tested there and is ready for further testing it can be manually deployed to staging, which gives the first chance to test database migrations and to double-check the MySQL backend.
The CI/CD processes can be monitored through Gitlab's CI/CD page https://gitlab.com/laconfdev/symposion_app/pipelines
Manual deployments (eg, to staging and production) can be initiated from a pipeline's page - eg https://gitlab.com/laconfdev/symposion_app/pipelines/24003091 - after prior stages pass.