Create Jenkins Job using Groovy Script

sending groovy script to create the pipeline job

  • Shell script to send groovy script to Jenkins using curl

New version of Jenkins needs CRUM in the header in the same session wiht cookies

#!/bin/bash

export JENKINS_URL='http://localhost:8080'
export JENKINS_USER='jenkins'
export JENKINS_TOKEN='11b1d065eec560d74e90346cb0b70ab396'
export COOKIE_JAR=/tmp/.cookies$$

if [ ! "$1" ] ; then
        echo "$1 script not found"
        exit 1
fi

export SCRIPT="$1"

JENKINS_CRUMB=$(curl --silent --cookie-jar "$COOKIE_JAR" $JENKINS_URL'/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)' -u $JENKINS_USER:$JENKINS_TOKEN)

echo $JENKINS_CRUMB

curl -H "$JENKINS_CRUMB"  -u "$JENKINS_USER:$JENKINS_TOKEN" -v --cookie "$COOKIE_JAR" \
        $JENKINS_URL/scriptText  --data-urlencode "script=$(<./$1)"

rm -f $COOKIE_JAR

exit 0
  • Using jenlinks-cli.jar file
curl -LvO http://localhost:8080/jnlpJars/jenkins-cli.jar

echo 'jenkins:11b1d065eec560d74e90346cb0b70ab396' > ~/.jenkins_secret
java -jar ./jenkins-cli.jar -s http://localhost:8080  -auth @${HOME}/.jenkins_secret who-am-i

java -jar ./jenkins-cli.jar -s http://localhost:8080  -auth @${HOME}/.jenkins_secret list-jobs

java -jar ./jenkins-cli.jar -s http://localhost:8080  -auth @${HOME}/.jenkins_secret get-jobs test1

*) Shell script to run jenkins-cli.jar

#!/bin/bash
if [ $# -eq 0 ]; then
        echo "Usage: $0 <args>"
        exit 1
fi
java -jar ~/bin/jenkins-cli.jar -noKeyAuth -s http://localhost:8080  -auth @${HOME}/.jenkins_secret $*

Refference https://xanderx.com/post/run-jenkins-script-console-scripts-from-command-line-without-remoting/

  • Post Paramter to job
curl -X POST http://localhost:8080/job/job1/build  \
  -u "jenkins:f1499cc9852c899d327a1f644e61a64d " \
  --data-urlencode json='{"parameter": [{"name":"id", "value":"100"}, {"name":"loglevel", "value":"high"}]}'

Copyright © 2004, Software Groups