https://github.com/nanmu42/tart
蛋挞是一个教学目的,非官方的 Gitlab Runner ,通过简明地实现 Gitlab Runner 功能的一个子集,展示 Gitlab Runner 的设计和实现方法。
举个例子,蛋挞可以运行自己的 CI job ,运行自己的测试和编译自己。
特色:
/dev/kvm
,让每个 job 在一个两秒内启动的虚拟机中运行,我目前没在公开资料里查到这么做的;只实现了核心功能,产物上传、service 这些功能是不支持的。换句话说,不要用于生产环境(真的会有人这么做吗)。
蛋挞需要在可以访问/dev/kvm
的 Linux 环境下运行:
sudo setfacl -m u:${USER}:rw /dev/kvm
$PATH
~/tart
rootfs/setup-tuntap.sh
tart register --endpoint https://gitlab.example.com --token your_token_here > tart.toml
tart run
make
产物在bin
文件夹中。
虚拟机的 RootFS 和 Linux 内核编译请参考rootfs
文件夹。
我喜欢吃蛋挞。
MIT
请自由享受和贡献开源。
第三方项目许可证请参阅THIRD_PARTY_LICENSES.md
.
logo 的照片来自于 Ashley Byrd on Unsplash ,Gopher 在gopherize.me生成。
1
nanmu42 OP 自己打破一下零回复惨案…
|
2
metrue 2022-10-25 09:32:20 +08:00 1
我个人还蛮喜欢这样的项目的,GitHub 官方有一个 action 的 Runner https://github.com/actions/runner 不清楚是不是可以参考看看。
|
4
lazyrm 2022-10-25 09:49:26 +08:00 1
周四肯德基呀?
|
5
israinbow 2022-10-25 09:58:20 +08:00 via Android 1
tart/runner/crazy_thursday.go
肯德基赞助了多少钱,我麦当劳给你双倍呃 |
7
yin1999 2022-10-25 10:58:55 +08:00 1
OP 有实现虚拟机的文档啥的不,想学习一下这块的内容,之前有想过用容器去实现
|
8
nanmu42 OP @yin1999 如果是和 Firecracker 相关的,可以参考这里上手:
https://github.com/nanmu42/tart/tree/master/rootfs 我打算在近期写一篇上面内容的扩展版本。 如果是“怎么实现虚拟机”,我就不是很清楚了。 |
9
reorx 2022-10-25 19:16:03 +08:00 via iPhone 1
卧槽,贼有意思的项目。可以脱离 GitLab 独立运行吗,比如提供自己的 API 供其他服务调用
|
10
hawei 2022-10-25 21:28:29 +08:00 via iPhone 1
6
|