This repository is under active development ⚠️ Please check back regularly for updates.
A CI/CD which works everywhere, even on your local environment.
buildsys is a customizable, extensible CI/CD system which multiple
backends. It has a plugin based system which allows developers to write
their custom code for deploying
Building from source
You will require Go 1.18+ to build this project.
cd cmd/togomak go build .
Running the binary
Providers are plugins, which can help in
- Gathering information
- Checking if all the preconditions of task are met
- Running a task
The data from the providers from the “Gather information” step can be used in other stages
A provider can be defined in the config file as follows:
providers: - id: git path: plugins/git/git
Remote plugins are still a WIP.
Stages are jobs which happen concurrently by default.
They can be run in parallel or sequentially.
If you need stages to execute sequentially, you can specify the
A sample stage can be defined like this
stages: id: myuniqueid # id needs to be unique container: python args: - "-c" - "print('Hello World')"
The above stage snipped uses Docker (or Podman) to pull the
from container registry, and executes the snippet as mentioned in the args.
You can also run a shell script within a container.
stages: id: helloworld container: python # the above container will run the following script in 'sh' script: | echo "Hello World"
To specify dependencies between stages, you can use the
buildsys will wait for the stages to finish before running the next stage.
stages: id: myuniqueid container: python args: - "-c" - "print('Hello World')" depends-on: - helloworld
Configuration is in
yaml. Some fields currently supported are, some fields
pongo syntax, which is very similar to django’s template syntax.
Currently supported fields are: