That all being said, I think you have 95% of that right there today with http://docs.vespene.io/importing.html
This is a JSON file, and it can define what pipeline a project is part of, and what stage it is in that pipeline.
So it's like "this project is part of the analytics pipeline, and it is part of the deployment stage".
But you still have to make the analytics pipeline in the GUI right now. This means that you have to say (and this is all) the analytics pipeline has the following stages in order: A, B, C, and then D.
I think it's quite possible to have the definition OF the analytics pipeline in the vespene.json too, but it's a bit of a question of which one wins if there are conflicting definitions.
If you want to stop by talk.vespene.io this would be a great thing to bounce ideas around on!
All can be built through their UI, then exported to yml in your repos. Pretty good UI. Their service connections are good.
Fortunately, we're mostly moving to GitLab CI which doesn't have most of this bullshit.
(Another fan here)
That seems to take care of who changed, what changed, etc.
- It would often get into an unrecoverable state, and we would have to SSH into the box to clean things up to allow it to continue (and in the meantime we would lose all history).
- Trivial automated changes from another plugin would flood the log. Not this plugin's fault, of course, but Jenkins is unusable without lots of plugins, most developed in isolation from others.
Everyone I've talked to about this prefers the GitLab model of telling the server everything relevant to your build at build time. Where Jenkins would need copies of jobs or synchronized configuration updates, GitLab just assumes that each commit has the job configuration it needs.
Does this mean that the CI config cannot be checked into some sort of version control? That was one of my biggest issues with Jenkins. Someone would change something somewhere and suddenly my builds would fail, and even if I track down what setting is causing the problem, I have no idea why it was changed, who changed it, what will happen if I put it back, or even what it's previous value is.
Additionally, it made duplicating a given workflow an extremely tedious, manual process.