|
|
|
@ -25,6 +25,9 @@ srcdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
|
usage_description="
|
|
|
|
|
Creates a Jenkins job from a given xml file and triggers it to run immediately
|
|
|
|
|
|
|
|
|
|
If the job already exists, skips creation
|
|
|
|
|
If the job already exists and the enviroment variable JENKINS_OVERWRITE_JOB is set to any value it updates the job definition
|
|
|
|
|
|
|
|
|
|
Uses the adjacent script jenkins_cli.sh
|
|
|
|
|
|
|
|
|
|
Jenkins authentication token and environment variables must be set - see jenkins_cli.sh for more details
|
|
|
|
@ -43,9 +46,18 @@ job_xml="$2"
|
|
|
|
|
shift || :
|
|
|
|
|
shift || :
|
|
|
|
|
|
|
|
|
|
if ! [ -f "$job_xml" ]; then
|
|
|
|
|
die "Job config file not found: $job_xml"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
timestamp "Checking if job '$job_name' already exists'"
|
|
|
|
|
if jenkins_cli.sh list-jobs | grep -q "^$job_name$"; then
|
|
|
|
|
timestamp "Job '$job_name' already exists, skipping creation"
|
|
|
|
|
if [ -n "${JENKINS_OVERWRITE_JOB:-}" ]; then
|
|
|
|
|
timestamp "Job '$job_name' already exists, updating to ensure latest version"
|
|
|
|
|
"$srcdir/jenkins_cli.sh" update-job "$job_name" < "$job_xml"
|
|
|
|
|
else
|
|
|
|
|
timestamp "Job '$job_name' already exists, skipping creation"
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
timestamp "Job '$job_name' does not exist yet, creating..."
|
|
|
|
|
"$srcdir/jenkins_cli.sh" create-job "$job_name" < "$job_xml"
|
|
|
|
|