Skip to content

Instantly share code, notes, and snippets.

@fenollp
Last active March 31, 2018 10:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fenollp/51f6d8d341582ad7201a659b987ff5de to your computer and use it in GitHub Desktop.
Save fenollp/51f6d8d341582ad7201a659b987ff5de to your computer and use it in GitHub Desktop.
Writing a single common CLI for all/most CI/CD providers

Writing a single common CLI for all/most CI/CD providers

Let's do this!

Usability requirements

  1. multiplatform + installation --> use Golang or Rust
  2. easy for others to PR/MR --> Golang then
  3. useful exit codes
  4. lots of streaming things (at least logs. at least of least a "streamed" travis show)
  5. must appear to be fast (make up for slow TCP)
  6. support GitLab then TravisCI then CircleCI from the beginning
  7. most basic commands: enable, show, open (= travis')
  8. eventually a command to SSH into a machine with the right artifacts, or download them if unsupported
  9. a configuration file that can be dotfiled

Already existing CLIs for CIs

In no particular order:

More CI/CD providers

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment