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 <osm...@sysmocom.de>
Gerrit-MessageType: newchange

Reply via email to