osmith has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmo-ci/+/36994?usp=email )
Change subject: jenkins-jobs-osmo: new file
......................................................................
jenkins-jobs-osmo: new file
Do not recommend to the user anymore to put the Osmocom jenkins server
in their global jenkins-job-builder config, as this may lead to jobs
from other repositories being deployed to the Osmocom jenkins by
accident.
Instead of that, let the user put the config in this path:
~/.config/jenkins_jobs/jenkins_jobs_osmo-ci.ini
Add a wrapper script that users this path, and makes sure that no global
config is present.
Related: SYS#6957
Change-Id: I1d7c50b2fef56e343cfe377b51f5f4304219cd22
---
A jenkins-jobs-osmo.sh
M jobs/README.md
2 files changed, 63 insertions(+), 10 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/94/36994/1
diff --git a/jenkins-jobs-osmo.sh b/jenkins-jobs-osmo.sh
new file mode 100755
index 0000000..245ac90
--- /dev/null
+++ b/jenkins-jobs-osmo.sh
@@ -0,0 +1,32 @@
+#!/bin/sh -e
+# jenkins-job-builder wrapper for deploying to the Osmocom jenkins server
+
+CONFIG="$HOME/.config/jenkins_jobs/jenkins_jobs_osmo-ci.ini"
+GLOBAL_CONFIGS="
+ $HOME/.config/jenkins_jobs/jenkins_jobs.ini
+ /etc/jenkins_jobs/jenkins_jobs.ini
+"
+
+if [ "$(basename "$PWD")" != "osmo-ci" ]; then
+ echo "ERROR: run this script from the osmo-ci dir"
+ exit 1
+fi
+
+for i in $GLOBAL_CONFIGS; do
+ if [ -e "$i" ]; then
+ echo "ERROR: global config found: $i"
+ GLOBAL_CONFIG_FOUND=1
+ fi
+done
+if [ "$GLOBAL_CONFIG_FOUND" = 1 ]; then
+ echo "Please rename/remove global config files to prevent deploying to the wrong
jenkins server by accident."
+ exit 1
+fi
+
+if ! [ -e "$CONFIG" ]; then
+ echo "ERROR: config not found: $CONFIG"
+ echo "You need to create it first, see: $PWD/jobs/README.md"
+ exit 1
+fi
+
+jenkins-jobs --conf "$CONFIG" "$@"
diff --git a/jobs/README.md b/jobs/README.md
index 8976bbe..7c81af5 100644
--- a/jobs/README.md
+++ b/jobs/README.md
@@ -11,21 +11,18 @@
# apt-get install jenkins-job-builder
```
-Have a jenkins-job-builder.ini file. One of
+Create the following file:
```
-~/.config/jenkins_jobs/jenkins_jobs.ini
-/etc/jenkins_jobs/jenkins_jobs.ini
+~/.config/jenkins_jobs/jenkins_jobs_osmo-ci.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_jobs_osmo-ci.ini`:
```
[jenkins]
@@ -37,13 +34,14 @@
and
```
-$ chmod go-rwx jenkins_jobs.ini
+$ chmod go-rwx jenkins_jobs_osmo-ci.ini
```
## Update a single job on
jenkins.osmocom.org
```
-$ jenkins-jobs --conf jenkins_jobs.ini update gerrit-verifications.yml gerrit-osmo-msc
+$ cd ..
+$ ./jenkins-jobs-osmo.sh update jobs/gerrit-verifications.yml gerrit-osmo-msc
```
NOTE: when you supply a name not defined in that yml file, you will not get an
@@ -52,13 +50,15 @@
## Update all jobs of one file
```
-$ jenkins-jobs --conf jenkins_jobs.ini update gerrit-verifications.yml
+$ cd ..
+$ ./jenkins-jobs-osmo.sh update jobs/gerrit-verifications.yml
```
## Update all jobs in all files
```
-$ jenkins-jobs --conf jenkins_jobs.ini update ./
+$ cd ..
+$ ./jenkins-jobs-osmo.sh update jobs/
```
## Troubleshooting
--
To view, visit
https://gerrit.osmocom.org/c/osmo-ci/+/36994?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ci
Gerrit-Branch: master
Gerrit-Change-Id: I1d7c50b2fef56e343cfe377b51f5f4304219cd22
Gerrit-Change-Number: 36994
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Gerrit-MessageType: newchange