跳转到主要内容

面向黑客的最简、去中心化、灵活的持续集成服务器

项目描述

Latest version released on PyPi Package license

minion-ci 是一个面向黑客的最简、去中心化、灵活的持续集成服务器。

Index Page

快速入门

使您的仓库 兼容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 (41.8 kB 查看哈希)

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面