面向黑客的最简、去中心化、灵活的持续集成服务器
项目描述
minion-ci 是一个面向黑客的最简、去中心化、灵活的持续集成服务器。
快速入门
使您的仓库 兼容minion 只需在仓库根目录下运行此命令即可
minion init之后,您应修改仓库中的 minion.yml 文件以适应您的需求。提交一个漂亮的提交,并运行以下命令以启动第一个工作
git minion如果 minion服务器 成功启动,您可以通过https://:5000 浏览Web界面
安装
建议使用pip安装minion-ci
pip3 install minion-ciMongoDB: 为了持久化作业数据,minion-ci 使用MongoDB。请确保您已安装MongoDB……
apt-get install mongodb
yum install mongodb……并有一个实例正在运行
ps -ef | grep mongod……最后,使用以下命令启动一个实例:
mongodminion.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 |