8 个版本
0.3.0 | 2021年10月19日 |
---|---|
0.2.1 | 2021年8月31日 |
0.1.4 | 2021年6月1日 |
0.1.3 | 2021年5月17日 |
0.1.0 | 2021年3月17日 |
#792 in 开发工具
23 每月下载量
580KB
13K SLoC
BUTIDO
"butido" 可能代表 "but i do"、"BUild Things In DOcker" 或 "Better Universal Task Instrumentation Docker Observator"。
无论如何,它是一个用于在 docker 中构建 Linux 发行版软件包的工具,它不对构建过程本身做出假设(因此可以构建 .rpm、.deb 或任何其他脚本可以构建的软件包格式)。
功能
软件包由 TOML 和层次结构定义(见 config-rs)。请参阅 示例 了解如何定义软件包。
软件包的“业务逻辑”是存在于预定义“阶段”中的 shell 脚本。这些脚本被编译成一个大脚本(每个软件包一个),然后运行以将源代码构建成软件包。
软件包定义可以包含元信息和(当然)软件包依赖信息。依赖和元信息在构建过程中都可用。
在构建或提交之前、期间或之后计算的任何内容都写入到 postgres 数据库中,包括构建日志。可以查询此数据库以获取软件包、构建信息、日志和其他数据。
成功构建的软件包被收集在文件系统上的“暂存”存储中。每个提交创建一个暂存存储。可以从此“暂存”存储中取出结果并发布到“发布”存储。
要求
假设您已安装 Rust,构建 butido 很简单
cargo build --release # (remove --release for a debug build)
Butido 使用 Rust 1.54.0 作为 MSRV 进行构建和测试。
(开发) 设置
要设置开发基础设施或生产基础设施(使用 ./examples/packages
目录中的示例)
# pull down necessary docker images
docker pull debian:bullseye
docker pull postgres:12
# setup the database in a postgres container
PG_USER=pgdev \
PG_PW=password \
PG_DB=butido \
PG_CONTAINER_NAME=butido-db \
bash scripts/dev-pg-container.sh
# copy the examples to /tmp
cd examples/packages
make
# Finish the database setup
cd /tmp/butido-test-repo
/path/to/butido db setup
# Start building
/path/to/butido build a --image debian:bullseye
词汇表
单词 | 解释 |
---|---|
build / job | 将一组源代码转换为软件包(或,技术上,甚至转换为多个软件包)的过程 |
dependency | 在构建时间或另一个“软件包”的运行时所需的“软件包” |
endpoint | 但丁多可以与之通信的 docker API 端点 |
任务集 | 可以按任意顺序或并行运行的任务列表 |
输出 | butido构建任务的输出结果 |
软件包 | 单个(归档)文件或任务的定义 |
脚本 | 在容器内运行的脚本。基本上是“source -> package”中的“->”。 |
源代码 | 包含源代码归档的文件 |
提交 | 调用butido构建单个软件包的请求,可能结果会构建多个软件包(依赖项) |
树 | 在构建软件包之前计算的树结构,以找出所有(传递性)依赖项 |
许可证
butido是为科学+计算ag(法国阿托斯公司)开发的。
许可证:EPL-2.0
依赖项
~41–60MB
~1M SLoC