Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ktdreyer/jenkins-job-wrecker
convert Jenkins job XML to JJB YAML
https://github.com/ktdreyer/jenkins-job-wrecker
jenkins job yaml
Last synced: 3 months ago
JSON representation
convert Jenkins job XML to JJB YAML
- Host: GitHub
- URL: https://github.com/ktdreyer/jenkins-job-wrecker
- Owner: ktdreyer
- License: mit
- Created: 2015-08-21T22:50:13.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2021-02-19T04:50:47.000Z (almost 4 years ago)
- Last Synced: 2024-08-10T02:53:13.408Z (6 months ago)
- Topics: jenkins, job, yaml
- Language: Python
- Size: 270 KB
- Stars: 160
- Watchers: 10
- Forks: 69
- Open Issues: 25
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
Jenkins Job Wrecker
-------------------.. image:: https://travis-ci.com/ktdreyer/jenkins-job-wrecker.svg?branch=master
:target: https://travis-ci.com/ktdreyer/jenkins-job-wrecker.. image:: https://badge.fury.io/py/jenkins-job-wrecker.svg
:target: https://badge.fury.io/py/jenkins-job-wrecker*time to get wrecked*
Translate Jenkins XML jobs to YAML. The YAML can then be fed into Jenkins Job
Builder.Have a lot of Jenkins jobs that were crafted by hand over the years? This tool
allows you to convert your Jenkins jobs to JJB quickly and accurately.Installing
----------You can install a released version from PyPI::
pip install jenkins-job-wrecker
Or, if you want to hack on it, install it directly from GitHub::
virtualenv venv
. venv/bin/activate
git clone https://github.com/ktdreyer/jenkins-job-wrecker.git
python setup.py developYou will now have a ``jjwrecker`` utility in your ``$PATH``.
Usage
-----
Let's say you have an XML definition file for "my-job". You'll typically find
these .xml files on your Jenkins master, maybe in ``/var/lib/jenkins/jobs/``.
Here's how you convert that job file to YAML::jjwrecker -f path/to/my-job/config.xml -n 'my-job'
This will write ``my-job.yml`` in a directory named "``output``" in your
current working directory. You can then commit ``my-job.yml`` into your source
control and use JJB to manage the Jenkins job onward.In addition to operating on static XML files, jjwrecker also supports querying
a live Jenkins server dynamically for a given job::jjwrecker -s http://jenkins.example.com/ -n 'my-job'
It will write ``output/my-job.yml`` as above.
To make jjwrecker translate every job on the server, don't specify any job
name::jjwrecker -s http://jenkins.example.com/
jjwrecker will iterate through all the jobs and create ``.yml`` files in
``output/``.If your Jenkins instance requires a username and password to connect to the
remote Jenkins server, you can set these as environment variables, exported
before hand or right before running the CLI tool::JJW_USERNAME=alfredo JJW_PASSWORD=go-tamaulipas jjwrecker -s
http://jenkins.ceph.comIf you receive the error ``Don't know how to handle a non-empty element.``,
you have actions in your xml for that job (probably from plugins). If you know that
you don't need this information in your JJB yml job config, try the ``-a`` flag.If your Jenkins instance is using HTTPS and protected by a custom CA, add the
CA's public cert to your system certificate store:* Fedora: ``/etc/pki/tls/certs`` directory,
* Ubuntu: ``/usr/local/share/ca-certificates/``After you've placed the PEM-formatted file there, run ``c_reshash`` in that
directory to create the CA certificate hash symlink. jjwrecker uses
python-jenkins, which in turn uses six's urllib, and that library will validate
HTTPS connections based on this openssl-hashed directory of certificates.License
-------
MIT (see ``LICENSE``)* Copyright (c) 2015-2020 Red Hat, Inc.
* Copyright (c) 2020 Liberty Global B.V.