cibox is a tool that generates CI/CD configurations for popular platforms like Github Actions and Gitlab CI. Imagine Terraform, but for CI pipelines.
There are three main advantages to generating your CI workflows/pipelines:
- You can get started really quickly for projects in popular ecosystems.
- You're not locked into a single CI platform since you can easily generate pipelines for any platform.
- You don't have to write any Yaml because we have a TUI interface.
The downside is, of course, you don't get the full flexiblity of writing your own pipeline from scratch. You can use a cibox pipeline as a starting point and make your own customizations, but then you're not able to freely switch to another CI platform.
- Github Actions
- Gitlab
- Circle CI
- Jenkins
- Gitea
We use a configuration file called cibox.ron in the root of your repo as the
single source of truth definiton for your CI pipeline. Using this file,
cibox can generate the proper CI configuration for any CI platform.
You can use our TUI interface to edit this file or any editor with LSP support.
Configure your editor to use cibox lsp as an LSP and you'll get inline
documenation and autocomplete.
Here's an example of what a cibox.ron file might look like:
(
version: "1",
presets: [
Docker(
registry: dockerhub,
image_name: "example",
push_on_tags_only: true,
),
Rust(
enable_linter: true, // Clippy
),
]
)For Helix, add this to your languages.toml:
[language-server]
cibox-lsp = { command = "cibox", args = ["lsp"] }
[[language]]
name = "ron"
file-types = ["ron", { glob = "cibox.ron" }]
language-servers = ["cibox-lsp"]TODO list all presets behind a "click to show".