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.

Source Distribution

jenkins-yml-2.23.tar.gz (8.0 kB view hashes)

Uploaded Source

Built Distribution

jenkins_yml-2.23-py2-none-any.whl (10.4 kB view hashes)

Uploaded Python 2

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page