Automated Releases ¶
The release process has been updated to be mostly automated via Github Action workflows. Human interaction is required for verifying and merging the generated release/deploy PRs in Github.
Staging deploy ¶
- Merge some work into
develop
- Wait for GitHub Action
Release Projections
to commit newlaraval-site
projection toreleases/laravel-site
holobranch. - Wait for Github Action
Prepare Laravel Site Release
to create/update a PR fromreleases/laravel-site
intodeploys/laravel-site
- Ensure that you change the title of the generated PR to match the intended release number eg.(Release: vX.XXX.X).
- Edit the first comment in the generated PR by copying the contents from the
Changelog
and manually organize them between Improvements and Technical. - Merge pull request
- Wait for Github Action
K8s Staging Build+Deploy
to run (triggered by previous step) which will create a new Docker build and ultimately update the version number for the staging release helm chart. - Wait for Github Action
Prepare k8s-manifests Deploy PR
to create a PR fromreleases/k8s-manifests
->deploys/k8s-manifests
- Verify (by looking at the generated diff added to the PR description) and then merge PR.
- Wait for Github Action
Deploy K8s Manifests
to apply changes to kubernetes cluster. - Verify that
https://staging.k8s.indevets.com/
loads, that you can login as an admin, and that you see the new version number under the toolbar. - Announce in
#indevets-team
Slack channel
Production deploy ¶
- Commit an update to the image version in
k8s/cats-production/release-values.yaml
to the desired release. - Wait for Github Action
Release Projections
to commit newk8s-manifests
projection toreleases/k8s-manifestes
holobranch. - Wait for Github Action
Prepare k8s-manifests Deploy PR
to create a k8s deploy PR fromreleases/k8s-manifests
->deploys/k8s-manifests
. - Verify (by looking at the generated diff added to the PR description) and merge PR.
- Wait for Github Action
Deploy K8s Manifests
to apply changes to kubernetes cluster. - Verify that
https://schedule.indevets.com/
loads, that you can login as an admin, and that you see the new version number under the toolbar - Announce in
#indevets-team
Slack channel
Workflow Descriptions: ¶
Name | Description | Triggered by |
---|---|---|
Release Projections | Generate Hologit projections and update their respective holobranches: laravel-site -> releases/laravel-site , k8s-manifests -> releases/k8s-manifests |
Pushes on develop |
Prepare Laravel Site Release | Create/Update pull request from projected holobranch releases/laravel-site -> deploys/laravel-site . |
Pushes on releases/laravel-site |
K8s Staging Build+Deploy (todo: rename) | Create a new Docker build, tagged with the version pulled from the title of the merged PR that triggers this action. It will then update the helm chart values for the staging release, located in k8s/cats-staging/release-values.yaml to the respective version and commit it directly to the develop branch which will trigger a new k8s-manifests Release Projection. Finally, this action will create a new release with the version and release notes pulled from the title and body respectively. |
PR Merged into deploys/laravel-site |
Deploy K8s Manifests | Apply K8s manifests from the deploys/k8s-manifests holobranch to the configured kubernetes cluster. |
Push on deploys/k8s-manifests |
Prepare k8s-manifests Deploy PR | Generate diff of current k8s config with projected k8s config and add that to the description of the PR that gets created from releases/k8s-manifests -> deploys/k8s-manifests |