2017-10-30 02:57:33 +00:00
|
|
|
These jenkins.osmocom.org job definitions, managed by
|
2017-09-12 11:16:33 +00:00
|
|
|
https://docs.openstack.org/infra/jenkins-job-builder/index.html[Jenkins Job Builder]
|
|
|
|
|
2017-10-30 02:57:33 +00:00
|
|
|
*Prepare:*
|
2017-09-12 11:16:33 +00:00
|
|
|
|
2017-10-30 02:57:33 +00:00
|
|
|
Install jenkins-job-builder:
|
2017-09-12 11:16:33 +00:00
|
|
|
|
2017-11-28 04:32:38 +00:00
|
|
|
For debian 9, see troubleshooting below. Otherwise:
|
|
|
|
|
2017-10-30 02:57:33 +00:00
|
|
|
apt-get install jenkins-job-builder
|
2017-09-12 11:16:33 +00:00
|
|
|
|
2018-01-12 16:59:24 +00:00
|
|
|
Have a jenkins-job-builder.ini file. One of
|
|
|
|
|
|
|
|
~/.config/jenkins_jobs/jenkins_jobs.ini
|
|
|
|
/etc/jenkins_jobs/jenkins_jobs.ini
|
|
|
|
|
|
|
|
or place one in here and pass it to jenkins-jobs using the --conf file.
|
2017-09-12 11:16:33 +00:00
|
|
|
|
2017-10-30 02:57:33 +00:00
|
|
|
Make sure the file not world readable to minimally safeguard your jenkins password.
|
2018-02-06 14:14:56 +00:00
|
|
|
Instead of using your jenkins password, use an *API Token*. To retrieve your token go
|
|
|
|
to Jenkins via a Webbrowser, click on your Username in the right corner, click on configure,
|
|
|
|
click on *Show API Toke...*.
|
2017-09-12 11:16:33 +00:00
|
|
|
|
2017-10-30 02:57:33 +00:00
|
|
|
jenkins_jobs.ini:
|
2017-09-12 11:16:33 +00:00
|
|
|
|
2017-10-30 02:57:33 +00:00
|
|
|
[jenkins]
|
|
|
|
user=my_user_name
|
2018-10-10 13:36:00 +00:00
|
|
|
password=my_api_token
|
2017-10-30 02:57:33 +00:00
|
|
|
url=https://jenkins.osmocom.org/jenkins
|
2017-09-12 11:16:33 +00:00
|
|
|
|
2017-10-30 02:57:33 +00:00
|
|
|
and
|
2017-09-12 11:16:33 +00:00
|
|
|
|
2017-10-30 02:57:33 +00:00
|
|
|
chmod go-rwx jenkins_jobs.ini
|
2017-09-12 11:16:33 +00:00
|
|
|
|
2017-10-30 02:57:33 +00:00
|
|
|
*Update a single job on jenkins.osmocom.org:*
|
2017-09-12 11:16:33 +00:00
|
|
|
|
2017-10-30 02:57:33 +00:00
|
|
|
jenkins-jobs --conf jenkins_jobs.ini update gerrit-verifications.yml gerrit-osmo-msc
|
2017-09-12 11:16:33 +00:00
|
|
|
|
2017-10-30 02:57:33 +00:00
|
|
|
NOTE: when you supply a name not defined in that yml file, you will not get an
|
|
|
|
error message, just nothing will happen.
|
2017-09-12 11:16:33 +00:00
|
|
|
|
2017-10-30 02:57:33 +00:00
|
|
|
*Update all jobs of one file:*
|
|
|
|
|
|
|
|
jenkins-jobs --conf jenkins_jobs.ini update gerrit-verifications.yml
|
|
|
|
|
|
|
|
*Update all jobs in all files:*
|
|
|
|
|
|
|
|
jenkins-jobs --conf jenkins_jobs.ini update ./
|
|
|
|
|
|
|
|
*Troubleshooting:*
|
|
|
|
|
|
|
|
- 'jenkins.JenkinsException: create[gerrit-osmo-msc] failed'
|
|
|
|
|
|
|
|
jenkins.osmocom.org is not reachable, or URL in the config file is erratic.
|
|
|
|
Make sure it is exactly
|
|
|
|
|
|
|
|
url=https://jenkins.osmocom.org/jenkins
|
|
|
|
|
|
|
|
- newlines:
|
|
|
|
|
2019-04-12 14:19:46 +00:00
|
|
|
Use 'key: |' to keep new lines in multiline values, e.g.:
|
|
|
|
- shell: |
|
|
|
|
echo hello
|
|
|
|
echo world
|
|
|
|
|
|
|
|
See also:
|
|
|
|
* https://yaml-multiline.info/
|
|
|
|
* https://stackoverflow.com/a/21699210
|
2017-10-30 02:57:33 +00:00
|
|
|
|
|
|
|
- jobs named on cmdline are not updated:
|
|
|
|
|
|
|
|
Make sure the job name is correct, or just issue an entire yml file without
|
|
|
|
individual job names.
|
2017-11-01 00:34:24 +00:00
|
|
|
|
|
|
|
Also be aware that jobs are only actually updated when anything changed.
|
2017-11-28 04:32:38 +00:00
|
|
|
|
|
|
|
- debian 9
|
|
|
|
|
|
|
|
For jenkins-job-builder to work on debian 9:
|
|
|
|
|
|
|
|
add 'testing' to /etc/apt/sources.list like
|
|
|
|
|
|
|
|
deb http://ftp.de.debian.org/debian/ testing main
|
|
|
|
|
|
|
|
then
|
|
|
|
|
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get -t testing install python-jenkins
|
|
|
|
sudo apt-get install jenkins-job-builder
|
|
|
|
|
|
|
|
and make sure to *not* pick the python3 versions
|
|
|
|
(or you'll need to add catching of HTTPError to jenkins/__init__.py in
|
|
|
|
'def maybe_add_crumb')
|
2018-02-25 15:25:44 +00:00
|
|
|
|
|
|
|
*Jenkins labels*
|
|
|
|
|
|
|
|
The build jobs are using labels to specify on which nodes the job should be run.
|
|
|
|
Please use the following labels
|
|
|
|
|
|
|
|
- osmocom-master-debian8: are nodes which can build osmocom-master and is a debian 8
|
|
|
|
- osmocom-master-debian9: are nodes which can build osmocom-master and is a debian 9
|
2018-02-25 19:38:13 +00:00
|
|
|
- osmocom-gerrit-debian8: are nodes which can build osmocom-gerrit and is a debian 8
|
|
|
|
- osmocom-gerrit-debian9: are nodes which can build osmocom-gerrit and is a debian 9
|