AppCat Release Process
The AppCat release process ensures that new versions of AppCat and its components are consistently built, tested, and rolled out across environments.
The process consists of:
-
Creating an AppCat version.
-
Creating a component-appcat version.
-
Updating fast and stable channels in
commodore-defaults
. -
Deploying the component and AppCat function by compiling cluster catalogs.
-
Rolling out AppCat (comp-function) to AppCat services.
Sprint Release
At the end of each sprint, a new AppCat version is released. This process is partly automated but still requires engineer involvement. Full automation is planned once the CI/CD lifecycle proves stable.
Preparation
-
Ensure the
develop
branch is up to date withmaster
. 👤 -
Confirm with the team that all AppCat and component PRs have been merged. 👤
Execution
-
Trigger the pre-release workflow in GitHub Actions. 👤
-
Wait for the workflow to succeed. A new AppCat version is released and a component PR is created automatically.
-
Review the new component PR to confirm it points to the latest AppCat version. 👤
-
Merge the component PR. 👤
-
If
develop
is behind, a PR will be created automatically. Ensuremaster
is merged back intodevelop
. 👤
Post-Release
Once the release is merged, dependencies and rollouts happen automatically:
-
Renovate in the commodore-defaults repository updates the AppCat dependency:
-
~5 minutes in fast channel (test).
-
~1 week in stable channel (prod).
-
-
Cluster compilations run daily at 09:30 (except weekends).
-
After compilation:
-
Component artifacts are rolled out.
-
The AppCat Crossplane function is deployed.
-
-
The AppCat Crossplane function is rolled out to services during each service maintenance window.
Hotfix Release
The hotfix process is used for urgent fixes that cannot wait for the next sprint release.
Execution
-
Add the comment
/merge
to the PR. 👤 → This automatically creates a new AppCat and component version. -
Renovate in the commodore-defaults repository updates the AppCat dependency:
-
~5 minutes in fast channel (test).
-
~1 week in stable channel (prod). (The engineer may accelerate this for hotfixes.) 👤
-
-
Trigger the cluster compilation pipeline manually instead of waiting for the next scheduled run. 👤
-
If
develop
is behind, a PR will be created automatically. Ensuremaster
is merged back intodevelop
. 👤
Key Considerations
👤 indicates engineer action required. |
Rollout timing differs between components and functions:
This timing difference is critical to consider when planning releases, and is the reason for the ~1 week delay in the |
Version bumping follows semantic labels:
|