There are some problems that we currently run into with our Github Actions based CI/CD release tooling:
Some workflows like image building, issue reconciling, cherry picking have to exist all repositories. This creates a burden when new repositories are added under the Konveyor umbrella or when one of those workflows needs to be modified.
Not all repositories produce container images as their release artifact. Instead they are git cloned into other container images.
It's very easy for container images to become out of sync. A concrete example is that the analyzer-lsp container image needs jdtls-server-base. Changes to jdtl-server-base SHOULD cause analyzer-lsp to be rebuilt.
Cleaning up failed repo releases + tags + container images is manual process
The aim of this work would be to improve the CI and Release Tooling, provide a single source of truth, and push CI/CD release tooling updates to our project repositories more automated.
Tasklist based on the enhancement described in #201.
### Tasks
- [ ] Update config.yaml in release tools to reflect dependency relationships between components of Konveyor. This will require an update to the config types.
- [ ] Generate release pipeline from config.yaml. When this work is complete the release pipeline for main, and releases going forward, will be in the release-tools repository.
- [ ] Move every Konveyor repositories CI checks to use `konveyor/ci/.github/workflows/global-ci-bundle.yml`. Should seriously consider automation to enforce this on all konveyor repositories (ie. every component should have PR checks to make sure the PR doesn't break CI).
- [ ] Need a reusable action or step on CI failure for nightlies that takes all of the images from a run, mirrors them to quay + tags and pins them by SHA + collects them into a bundle and informs the failure notification how an engineer could recreate the failed build.
- [ ] ...
There are some problems that we currently run into with our Github Actions based CI/CD release tooling:
git cloned
into other container images.The aim of this work would be to improve the CI and Release Tooling, provide a single source of truth, and push CI/CD release tooling updates to our project repositories more automated.
Tasklist based on the enhancement described in #201.