Plugin CI process details
Plugin repositories with name starting with ‘plugin-’ have unique CI process managed with workflow file named push_sync_ci.yaml
. As the total architecture of CI is different from other repositories, plugin repositories' workflow files are automatically updated at every code commit.
We can follow the plugin CI process, step by step.
Step 1. push_sync_ci.yaml
in each plugin repository is triggered by master branch push or in a manual way.
Step 2. push_sync_ci.yaml
runs cloudforet-io/actions/.github/worflows/deploy.yaml
.
Step 2-1. spaceone/actions/.github/worflows/deploy.yaml
runs cloudforet-io/actions/src/main.py
.
cloudforet-io/actions/src/main.py
updates each plugin repository workflow files based on the repository characteristics distinguished by topics. Newest version files of all plugin repository workflows are managed incloudforet-io/actions
.
Step 2-2. spaceone/actions/.github/worflows/deploy.yaml
runs push_build_dev.yaml
in each plugin repository
push_build_dev.yaml
proceeds versioning based on current date.push_build_dev.yaml
upload the plugin image in Docker.push_build_dev.yaml
sends notification through Slack.
To build and release the docker image of plugin repositories, plugins use dispatch_release.yaml
.
dispatch_release.yaml
in each plugin repository is triggered manually.dispatch_release.yaml
executes condition_check job to check version format and debug.dispatch_release.yaml
updates master branch version file.dispatch_release.yaml
executes git tagging.dispatch_release.yaml
builds and pushes to Docker Hub withdocker/build-push-action@v1
dispatch_release.yaml
sends notification through Slack.
For further details, you can check our GitHub cloudforet-io/actions
.