tickborg is a RabbitMQ-based distributed CI system that:
PRs automatically trigger builds for affected projects based on:
feat(meshmc): trigger builds for the named projectExample commit titles and the builds they will start:
| Message | Automatic Build |
|---|---|
feat(meshmc): add chunk loading |
meshmc |
cmark: fix buffer overflow |
cmark |
fix(neozip): handle empty archives |
neozip |
chore(ci): update workflow |
(CI changes only) |
If the title of a PR begins with WIP: or contains [WIP] anywhere, its
projects are not built automatically.
The comment parser is line-based. Commentary can be interwoven with bot instructions.
@tickbot (case insensitive).@tickbot build meshmc neozip cmark
This will build the specified projects using their configured build systems.
@tickbot test meshmc
This will run the test suite for the specified projects.
@tickbot eval
Triggers a full evaluation of the PR — detects changed projects and labels the PR.
| Platform | Runner |
|---|---|
x86_64-linux |
ubuntu-latest |
aarch64-linux |
ubuntu-24.04-arm |
x86_64-darwin |
macos-15 |
aarch64-darwin |
macos-15 |
x86_64-windows |
windows-2025 |
aarch64-windows |
windows-2025 |
x86_64-freebsd |
ubuntu-latest (VM) |
| Project | Build System | Path |
|---|---|---|
| mnv | Autotools | mnv/ |
| cgit | Make | cgit/ |
| cmark | CMake | cmark/ |
| neozip | CMake | neozip/ |
| genqrcode | CMake | genqrcode/ |
| json4cpp | CMake | json4cpp/ |
| tomlplusplus | Meson | tomlplusplus/ |
| libnbtplusplus | CMake | libnbtplusplus/ |
| meshmc | CMake | meshmc/ |
| forgewrapper | Gradle | forgewrapper/ |
| corebinutils | Make | corebinutils/ |
$ git clone https://github.com/project-tick/Project-Tick/
$ cd Project-Tick/ofborg
$ cd tickborg
$ cargo build
$ cargo check
$ cargo test
Make sure to format with cargo fmt and lint with cargo clippy.
See example.config.json for a minimal configuration
and config.public.json for the production config.
Thank you to all the people who have contributed to this project!