devstream
devstream copied to clipboard
:four_leaf_clover: `Proposal`: More general CI plugin
What Would You Like to Add? Why Is This Needed?
Since we now have gitlabci
, githubaction
, and jenkinsPipeline
. All the CI operation has the following two configs:
- Config project-related info, including trigger branch, corresponding CI script, and more.
- Config detailed CI script and push this script to the project repo.
I think we can design a more general CI plugin for all these CI scenes instead of different languages and different platforms.
Design
Separate project config and Script config
With this design, we can have multi projects have the same ci config.
Put all CI templates in one repo
Since different platforms have different config files, we can put all CI files in one repo, like below, All our code logic is just to get a template and render it then push it to the code repo.
golang
- .gitlab.ci
- .github/workflow/
- Jenkinsfile
This generical CI plugin will not replace all ci plugin,It will be a option to run ci
I suggest that:
- keep the simplicity of each ci-related plugins, such as
githubactions-golang
etc; - add a
ci-generic
plugin is ok, similar to the logic of thehelm-generic
plugin, but do not use this plugin to replace the existing ci plugins.
In short, from the user's point of view, it is important that the plugins are simple and easy to use.