devstream icon indicating copy to clipboard operation
devstream copied to clipboard

:four_leaf_clover: `Proposal`: More general CI plugin

Open steinliber opened this issue 2 years ago • 2 comments

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

steinliber avatar Jul 26 '22 02:07 steinliber

This generical CI plugin will not replace all ci plugin,It will be a option to run ci

steinliber avatar Jul 27 '22 16:07 steinliber

I suggest that:

  1. keep the simplicity of each ci-related plugins, such as githubactions-golang etc;
  2. add a ci-generic plugin is ok, similar to the logic of the helm-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.

daniel-hutao avatar Jul 28 '22 04:07 daniel-hutao