Skip to content

Commit

Permalink
Merge pull request #114 from vshn/add/control_plane_split
Browse files Browse the repository at this point in the history
Add docs about new CI/CD pipelines
  • Loading branch information
Kidswiss authored Sep 10, 2024
2 parents 80d5091 + 2e33120 commit 4ce0b00
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
31 changes: 31 additions & 0 deletions docs/modules/ROOT/pages/reference/ci-cd.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
= AppCat CI/CD Processes

AppCat contains many repositories.
They all converge in the `component-appcat`, which is responsible for deploying everything.

In order to streamline our development process, we improved the CI/CD with following steps:

* Creating a PR in an AppCat repository automatically builds images and packages
* Creating a PR in an AppCat repository automatically creates a PR on the component that reflects the changes, so it can instantly be deployed any SYN cluster to test
* Proper labels on the PRs are enforced
* Merging a PR will automatically create a release, according to the labels it will detect what version increment it needs to do
* The auto release is not active on the component repository
== How to do a change in an AppCat repository

For this example we change something in AppCat itself.

1. Create a new branch and implement your feature
1. Push your branch and open a PR
1. Select a label before you click "create PR"
1. Once the PR is created it opens a PR in `component-appcat` and also builds all necessary images and packages, this takes a few minutes
1. After the main PR has been reviewed and approved, just merge it. All necessary steps to release the new version are done automatically
1. Check the PR in `component-appcat`, if it's just a version bump, approve it and merge. If more changes are needed, implement them and let someone else approve the PR
1. The `component-appcat` does not have automatic release on merge. Create a tag as usual.

== How to manage the CI/CD pipelines

All the files that specify the process are managed via cruft and cookiecutter.
The repository is: https://github.com/vshn/appcat-cookiecutter.
Each of the AppCat repos contains a cronjob that checks for changes every 60 minutes.
If there are changes it will open a new PR.
1 change: 1 addition & 0 deletions docs/modules/ROOT/partials/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
** xref:app-catalog:ROOT:reference/framework-requirements.adoc[]
** xref:app-catalog:ROOT:reference/slareports.adoc[]
** xref:app-catalog:ROOT:reference/control-plane-architecture.adoc[]
** xref:app-catalog:ROOT:reference/ci-cd.adoc[]
** xref:app-catalog:ROOT:reference/quality-requirements.adoc[Quality Requirements]
*** xref:app-catalog:ROOT:reference/quality-requirements/maintainability/readiness-standards.adoc[Maintainability]
*** xref:app-catalog:ROOT:reference/quality-requirements/portability/backup-exports.adoc[Portability]
Expand Down

0 comments on commit 4ce0b00

Please sign in to comment.