Skip to main content

Define Jenkins jobs from repository

Project description

CI Status Version on PyPI

Define jobs from project

Render Jenkins job and execute commands from jenkins.yml. These two steps are completely independant.

jenkins_yml provide a python API to render a Jenkins job XML config from a YAML payload. It does not manage Jenkins I/O to effectively create the job. See Jenkins EPO to create jobs and schedule builds from GitHub.

Finally, jenkins_yml provide a simple yet pluggable CLI script to executes de tests commands from jenkins.yml.

Jenkins Job features

The purpose of Jenkins YML is not to expose all Jenkins features, but to setup a sane default set of features you expect from a CI, and ask you the question you value.

  • Define parameters and default values.
  • Define matrix job axis.
  • Define periodic job.
  • Target Jenkins node per build.
  • Search git clone reference in /var/lib/jenkins/references/<owner>/<repository>/. It’s up to you to create a mirror clone here or not.
  • Set GitHub commit status to pending.
  • Parameterized revision.
  • Define after_script, always runned after build, even on abort.
  • Collect arctefacts from _ci/ directory. Full path is available in CI_ARTEFACTS env var.
  • Reads XUnit XML from _ci/xunit*.xml.
  • Reads coverage report from coverage.xml.
  • Globally disable jobs from Jenkins.

Setup

On your Jenkins executor, pip3 install jenkins-yml and then use jenkins-yml-runner as shell command.

jenkins.yml format

Put a jenkins.yml file at the root of the project. This file contains a mapping of JOB_NAME to scripts. For example:

app-lint: |
  flake8 app/

app-tests:
  axis:
    TOXENV: [py27, py34, py35]
  script: |
    tox -r

app-doc:
  script: |
    tox -e sphinx -r

To test a job, simply run:

JOB_NAME=app-test jenkins-yml-runner

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for jenkins-yml, version 2.27
Filename, size File type Python version Upload date Hashes
Filename, size jenkins_yml-2.27-py3-none-any.whl (10.5 kB) File type Wheel Python version 3.5 Upload date Hashes View hashes
Filename, size jenkins-yml-2.27.tar.gz (8.1 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page