Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I would like to query Jenkins using it's API and Python to fetch the branch that is currently ready to be built.

How can I do that?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
159 views
Welcome To Ask or Share your Answers For Others

1 Answer

From the jenkins API you can check

lastSuccessfulBuild/api/json?tree=actions[buildsByBranchName]

Maybe what you can do is build your stuff, and have a second job triggered after your build job is finished.

Then in this new job, you can find the branch name

I dont use python, but with jq you can get the branch names in an array like this:

 jq -r '.actions[].buildsByBranchName | select(. != null)'

The full code (you can of course replace the bash vars correctly):

JENKINS_API_URL=$JENKINS_SERVER/job/$DEPLOY_JOB/lastSuccessfulBuild/api/json?tree=actions[buildsByBranchName]

BRANCHES_JSON=$(curl --globoff --insecure --silent $JENKINS_API_URL)

BRANCHES=`echo $BRANCHES_JSON | /var/lib/jenkins/tools/jq/jq -r '.actions[].buildsByBranchName | select(. != null)'`

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...