What is TickBorg?

Active Service Public Owner: Mehmet Samet Duman

Overview

tickborg is a RabbitMQ-based distributed CI system that:

Automatic Building

PRs automatically trigger builds for affected projects based on:

Example 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.

Commands

The comment parser is line-based. Commentary can be interwoven with bot instructions.

  1. To trigger the bot, the line must start with @tickbot (case insensitive).
  2. To use multiple commands, separate them on different lines.

build

@tickbot build meshmc neozip cmark

This will build the specified projects using their configured build systems.

test

@tickbot test meshmc

This will run the test suite for the specified projects.

eval

@tickbot eval

Triggers a full evaluation of the PR — detects changed projects and labels the PR.

Supported Platforms

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)

Sub-Projects

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/

Hacking

$ 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.

Configuration

See example.config.json for a minimal configuration and config.public.json for the production config.

Contributors

Thank you to all the people who have contributed to this project!

brammool
nlohmann
peterix
jgm
chrisbra
nmoinvaz
zeertzjq
hjemli
Dead2
YongDo-Hyun
yegappan
fukuchi
madler
mtl1979
dkearns
marzer
ljfa-ag
Scrumplex
nwellnhof
h-east
dependabot[bot]
johnkeeping
k-takata
Forkk
eworm-de
zx2c4
02JanDal
glepnir
zzzyxwvut
RestorerZ
phprus
theodelrieu
girishji
ychin
pheiduck
64-bitman
dpelle
errael
LemonBoy
mattn
KungFuJesus
Freed-Wu
iii-i
jamierocks
luukvbaal
Konfekt
falbrechtskirchinger
Trial97
habamax
azc100
ribru17
ccawley2011
seandewar
saccarosium
jamessan
mao-yining
dlejay
ichizok
compnerd
TheKodeToad
Janrupf
txtsd
Khitiara
dundargoc
daxtens
dota17
pps83
amaanq
Orochimarufan
Shougo
jherland
nickaein
fhuberts
bradfora
Milly
d4ndo
zewpo
e-kwsm
julian-becker
koron
eevan78
ObserverOfTime
renovate[bot]
ZekerZhayard
AnthonyVH
Kilobyte22
t-b
gpanders
Shane-XB-Qian
brianhuster
dankegel
HenryRLee
huanghuihui0904
jiangyinzuo
zdohnal
pfeatherstone
MiguelBarro
kb-1000
hacker
jparise
pjkundert
Ryex
Francois-air
sodero
jseward
Teemperor
haampie
jtkukunas
dseomn
cvwillegen
rbtnn
onqtam
phit
dariomt
julio-b
aburgh
whydoubt
benknoble
gracicot
arp242
N-Dekker
MarkLodato
dezza
kivikakk
rhysd
Tachi107
dumarjo
lesorubshayan
mityu
kennypete
shaneharper
tmzullinger
mscastanho
kainjow
bitigchi
dylanahsmith
karzhenkov
matbech
thinca
olasoder-work
abolz
UniQP
f4nb0y
nir9
illia-bobyr
DioEgizio
pmqs
lilydjwg
arpadffy
Ajit-Thakkar
moshen
dougallj
dungsaga
Icenowy
mateoxh
philipturnbull
mohd-akram
TinyTinni
RJVB
gdevenyi
KSR-Yasuda
obcat
joshua-stone
paul-ollis
fangq
litoj
JimZhouZZY
jysh1214
richael02
haron13-2019
Knagis
ArtemSarmini
mikoto2000
tpope
StaticRocket
ax3l
btrask
brad0
ChrisKitching
DimitriPapadopoulos
dzenanz
hjmjohnson
Type1J
lfos
mgorny
mrdubya
himikof
robertmrk
FantasqueX
ambroisie
KnoP-01
kumquat-ir
garethsb
adah1972
ubaldot
petercolberg
kapyshin
diegoviola
yeager
andis-sprinkis
ColinKennedy
aokellermann
lws-team
preaction
ericpruitt
echasnovski
jmdevin
joshtriplett
Feh
causal-agent
NiLuJe
overmighty
taksuyu
victorhck
kuuote
lawadr
matveyt
nisbet-hubbard
phanen
pyllyukko
theofficialgman
bfredl
0xAdk
selenebun
aerkkila
winterheart
simmsbra
cjmayo
cirosantilli
DenizThatMenace
DominiquePelle-TomTom
Fiona-J-W
sgruszka
hnampally
bogemic
Repox
jonestristand
TedLyngmo
linev
samrussell
robinst
bobrippling
olegendo
Octol1ttle
nschonni
pclouds
agrianius
antenore
bennyyip
jprochazk
smjonas
bfoersterling
donny-dont
Un1q32
Finkman
ronaaron
NewoIsTaken
sakhnik
ahamez
aldot
Scotsguy
puremourning
ap-viavi
Bakudankun
bbatsov
cebe
rdnlsmith
mg979
MuntasirSZN
mikomikotaishi
MathieuDuponchelle
globberwops
YarikTH
juliusrakow
jrn
jothan
jamespeapen
JNylson
folliehiyuki
graemeg
veotos
tomben13
stoeckmann
tklauser
Turbo87
shuffle2
noscript
trofi
ryanjmulder
ripetersen
enzo1982
rmisev
barcode
rid9
oynqr
pvachon
syntheticpp
petere
telemachus
pfultz2
nemequ
scinart
presuku
markmacode
laburnumT
kylo252
kevinlul
justanotheranonymoususer
jopejoe1
itchyny
ii14
gistrec
gatopeich
fundawang
dan-42
ashamedbit
ynkdir
yochem
littlewu2508
Xav83
chernetskyi
CViniciusSDias
szepeviktor
viccie30
ttytm
eli-schwartz
elibarzilay
sukima
winspool
dgavedissian
dmenendez-gruposantander
toofishes
dertuxmalwieder
bugfood
ckipp01
chr4
gocarlos
blmaier
rivertam
AstroSnail
AshleighTheCutie
Arkissa
bam80
aJanuary
amirmasoudabdol
Zetabite
am11
A4-Tacks
patrikhuber
pboettch
ncopa
skypjack
codenut
mp15
marshallward
mmrwoods
Macr0Nerd
kat0h
KevinGoodsell
JordanMilne
foonathan
JohnoKing
Ericson2314
jeroen
intelfx
svardew
ImperatorStorm
ied206
gsjaardema
ge0rg
g-branden-robinson
oljemark
vimpostor
aapo