Check to see if a build is running or not
I tried the Python script in the answer to this question, but couldn't get it to work. I don't know Python, and didn't want to invest any time in debugging, but was able to read enough of the script to gain inspiration from it.
All I need to do is check to see if a build is running or not. To do that I used curl and grep, like this:
curl http://myjenkins/job/myjob/lastBuild/api/json | grep --color result\":null
- If a build is in progress, a grep for
result\":null will return 0.
- If a build is finished, a grep for
result\":null will return 1.
Not especially elegant, but it works well enough for my needs.
For example, I have a Bash script that starts a build, then waits for it to finish:
# Start the build
# Poll every thirty seconds until the build is finished
while [ $GREP_RETURN_CODE -eq 0 ]
# Grep will return 0 while the build is running:
curl --silent $JOB_STATUS_URL | grep result\":null > /dev/null
echo Build finished
Thanks for the inspiration, Catskul!