面向黑客的最简、去中心化、灵活的持续集成服务器
项目描述
minion-ci 是一个面向黑客的最简、去中心化、灵活的持续集成服务器。
快速入门
使您的仓库 兼容minion 只需在仓库根目录下运行此命令即可
minion init
之后,您应修改仓库中的 minion.yml 文件以适应您的需求。提交一个漂亮的提交,并运行以下命令以启动第一个工作
git minion
如果 minion服务器 成功启动,您可以通过http://localhost:5000 浏览Web界面
安装
建议使用pip安装minion-ci
pip3 install minion-ci
MongoDB: 为了持久化作业数据,minion-ci 使用MongoDB。请确保您已安装MongoDB……
apt-get install mongodb
yum install mongodb
……并有一个实例正在运行
ps -ef | grep mongod
……最后,使用以下命令启动一个实例:
mongod
minion.yml 文件格式
minion-ci 服务器将克隆您的仓库,并解析位于克隆仓库根目录下的名为 minion.yml 的文件。格式非常简单
# command which is run before the real command
precondition: "echo 'I was run before the test ...'"
# the test command
command: "echo 'This is my test...'"
on:
# command which is run if the command was successful
success: "echo 'I was run because the test was successful ...'"
# command which is run if the command failed
failure: "echo 'I was run because the test failed ...'"
minion.yml 收据
以下几节将解释如何为不同类型的环境和技术设置 minion.yml 文件,例如Python虚拟环境、Docker容器等。
为什么这么复杂? … 嗯,其实并不复杂,不是吗?只是有太多不同的测试环境和方法的风格……我不想对它们都给予全部的关注并支持它们。而且……最后,你的用例可能不会被支持。因此,我们为每个开发者提供对其自己的测试设置和环境的完全控制。按照你喜欢的方式设置它,然后按照你喜欢的方式运行测试。 但是:这里有一些清单,可能有助于你创建一个不错的 minion.yml 配置
Python 虚拟环境
要测试你的代码在 python 虚拟环境中,请基于以下示例修改 minion.yml
precondition: >
/bin/bash -c 'virtualenv env -p python3.4 &&
source env/bin/activate && python -m pip install . -r requirements-dev.txt'
command: /bin/bash -c 'source env/bin/activate && make test'
确保你更改实际的 测试 命令,在示例中为 make test。你也可以很容易地将其与 tox 集成。只需确保 tox 已安装,并作为测试命令运行。
Docker
要在 docker 容器中测试你的代码,请按照以下示例设置 minion.yml
precondition: /bin/bash -c 'docker pull ubuntu'
command: /bin/bash -c 'docker run -t ubuntu /bin/bash -c "make test"'
这将从 docker hub 拉取新的 ubuntu docker 镜像,并在容器中运行 make test。你可能想在 precondition 中设置自己的 docker 镜像,然后在实际的 command 中运行这个容器。
precondition: /bin/bash -c 'docker build -t testing .'
command: /bin/bash -c 'docker run -t testing /bin/bash -c "make test"'
确保在运行任何测试之前,将你的仓库、源代码、测试代码或任何内容挂载到容器中。
服务器API
路由 |
HTTP 方法 |
参数 |
描述 |
---|---|---|---|
/status |
GET |
获取服务器状态 |
|
/jobs |
GET |
page, page_size |
获取所有作业的列表 |
/jobs |
POST |
repo_url, commit_hash, branch, keep_data, arbitrary data |
创建一个新的作业 |
/jobs |
DELETE |
删除所有作业 |
|
/jobs/<job_id> |
GET |
获取单个作业 |
|
/jobs/<job_id> |
DELETE |
删除单个作业 |
|
/stop |
POST |
停止 minion-server |
项目详情
minion-ci-0.0.7.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c45445bdd2d616d5345f0146227334657ee18109a23f4103dd5805519982a037 |
|
MD5 | ca4c51169d3fdcb5bca3ceab52788770 |
|
BLAKE2b-256 | a3d643147e44ae29b2bdf06bb9fd052ee923269b965935c1c090a70e4892053f |