orbitalci / orbital

Orbital is a self-hosted CI system for solo/small consulting dev teams. Written in Rust.
GNU General Public License v3.0
29 stars 2 forks source link

Support for a Jenkins-like build declaration #237

Closed tjtelan closed 4 years ago

tjtelan commented 4 years ago

This is a user request

Jenkins workflows keep build details completely within its own processes. Pipelines don't need to be committed and pushed to a remote repo. The request is effectively for an opt-out from checking in and pushing an orb.yml in the repo.

This supports user workflows where teams may have strict process affecting the ability to push to any specific branch. If your release versioning are automated on commits, then we might have to jump through hoops to revoke new versions if updates to CI pipelines occur. Skipping CI isn't exactly the goal either. We still want to build the same commit, and not confuse the git log with pipeline tuning commits.


While my original goal for Orbital is that all of these pipeline changes be auditable via the git log, but I don't feel strongly about that as a requirement. The root intention was to reduce friction around re-deploying by capturing all of the details in orb.yml.

An ability for an operator to bulk import/export pipelines could possibly support the original intent, while providing the option to decouple CI changes from other code changes.

tjtelan commented 4 years ago

orb build --config <path> will upload an OrbitalConfig to be used. We print it out in the debug build logs, but we don't save the config anywhere else. I'm going to leave that as-is for now, since I want to encourage configs to get checked in eventually.

I also haven't decided how much stuff needs to get committed into the db. As well as how we want to represent if a non-repo config was used for the build in the summary.