Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
166 views
in Technique[技术] by (71.8m points)

python - How to fetch the current branch from Jenkins?

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

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

1 Reply

0 votes
by (71.8m points)

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)'`

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...