osmith has uploaded this change for review.

View Change

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 change 36994. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: osmo-ci
Gerrit-Branch: master
Gerrit-Change-Id: I1d7c50b2fef56e343cfe377b51f5f4304219cd22
Gerrit-Change-Number: 36994
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <osmith@sysmocom.de>
Gerrit-MessageType: newchange