minimalist, decentralized, flexible Continuous Integration Server for hackers
Project description
minion-ci is a minimalist, decentralized, flexible Continuous Integration Server for hackers.
Quickstart
Making your repository minion compatible is as easy as running this command in the root of your repository:
minion init
After that you should modify the minion.yml file in your repository to fit your needs. Make a nice commit and run the following command to start your first job:
git minion
Installation
It’s recommended to use pip to install minion-ci:
pip3 install minion-ci
MongoDB: To persist the job data minion-ci uses MongoDB. Make sure you have MongoDB installed …
apt-get install mongodb
yum install mongodb
… and an instance is running:
ps -ef | grep mongod
… eventually start one with:
mongod
minion.yml File Format
The minion-ci server will clone your repository and parse a file called minion.yml located in the root of the cloned repository. The format is really simple:
# 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 ...'"
Server API
Route |
HTTP Method |
Parameter |
Description |
---|---|---|---|
/status |
GET |
Get status of the server |
|
/jobs |
GET |
page, page_size |
Get a list of all jobs |
/jobs |
PUT, POST |
repo_url, commit_hash, branch, keep_data, arbitrary data |
Create a new job |
/jobs |
DELETE |
Remove all jobs |
|
/jobs/<job_id> |
GET |
Get a single job |
|
/jobs/<job_id> |
DELETE |
Remove a single job |
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.