Define Jenkins jobs from repository
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.
On your Jenkins executor, pip3 install jenkins-yml and then use jenkins-yml-runner as shell command.
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:
Release history Release notifications
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size jenkins-yml-2.22.tar.gz (8.0 kB)||File type Source||Python version None||Upload date||Hashes View hashes|