mirror of https://gerrit.osmocom.org/osmo-ci
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
2.9 KiB
105 lines
2.9 KiB
These jenkins.osmocom.org job definitions, managed by
|
|
https://docs.openstack.org/infra/jenkins-job-builder/index.html[Jenkins Job Builder]
|
|
|
|
*Prepare:*
|
|
|
|
Install jenkins-job-builder:
|
|
|
|
apt-get install jenkins-job-builder
|
|
|
|
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.
|
|
|
|
Make sure the file not world readable to minimally safeguard your jenkins password.
|
|
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...*.
|
|
|
|
jenkins_jobs.ini:
|
|
|
|
[jenkins]
|
|
user=my_user_name
|
|
password=my_api_token
|
|
url=https://jenkins.osmocom.org/jenkins
|
|
|
|
and
|
|
|
|
chmod go-rwx jenkins_jobs.ini
|
|
|
|
*Update a single job on jenkins.osmocom.org:*
|
|
|
|
jenkins-jobs --conf jenkins_jobs.ini update gerrit-verifications.yml gerrit-osmo-msc
|
|
|
|
NOTE: when you supply a name not defined in that yml file, you will not get an
|
|
error message, just nothing will happen.
|
|
|
|
*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:
|
|
|
|
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
|
|
|
|
- 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.
|
|
|
|
Also be aware that jobs are only actually updated when anything changed.
|
|
|
|
*Jenkins labels*
|
|
|
|
Most jenkins jobs should run a docker container and install all required
|
|
dependencies inside that, so we don't need to install them on the jenkins node.
|
|
These jobs don't need to set a label, they can just run on any generic jenkins
|
|
node that has docker available. So if you add a new job, you probably don't
|
|
need a label at all.
|
|
|
|
Existing jobs typically have a label set by the topic they belong to, e.g.:
|
|
- osmocom-master
|
|
- osmocom-gerrit
|
|
- ttcn3
|
|
|
|
Other labels indicate specific software/hardware works here, e.g.:
|
|
- coverity
|
|
- hdlc
|
|
- osmo-gsm-tester
|
|
- podman
|
|
|
|
*ccache*
|
|
|
|
The jobs from master-builds and gerrit-verifications use ccache. View the
|
|
statistics with SSH on the build nodes with:
|
|
|
|
$ CCACHE_DIR=~/ccache/gerrit-verifications ccache -s
|
|
$ CCACHE_DIR=~/ccache/master-builds ccache -s
|
|
|
|
Note that running multiple jobs in parallel influence the ccache statistics,
|
|
and it's impossible to tell which job caused which change in the stats (that's
|
|
why they are not printed at the end of each job, it would be confusing).
|