Time for kickass CI !


Jenkins EPO

Documentation CI Status Code coverage Version on PyPI

Implements extended CI features on top of Jenkins and GitHub for in-house CI.


  • Define jobs from repository in jenkins.yml.
  • Jobs pipeline façon GitLab CI.
  • Query GitHub API to poll open PR instead of polling git repository.
  • Read instructions from PR comments.
  • Cancel running jobs when pushing new commits.
  • Report issue on broken protected branches.
  • Auto-merge PR.
  • Works with webhook and/or behind firewall.
  • Extensible through entry-point.


On your poller host:

pip3 install jenkins-epo
# Setup env vars
export JENKINS_URL=http://myjenkins.lan JOBS_CREDENTIALS=clone-creds
# Check repository is manageable
jenkins-epo list-heads
# Trigger a dry run
DRY_RUN=1 jenkins-epo process https://github.com/owner/repo/tree/master
# Run it for real
jenkins-epo bot

Now write a jenkins.yml file and open a PR:

myjob: |
    tox -r

Many instructions are available. Just ask the bot by commenting jenkins: help in an open PR!