Update dependency org.apache.httpcomponents:httpclient to v4.5.14 #88
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Renovate Jenkins Trigger | |
on: | |
pull_request: | |
types: | |
- opened | |
- synchronize | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
env: | |
# Username (currently my own one, use something else in the future) | |
JENKINS_USERNAME: "${{ secrets.RENOVATE_JENKINS_USERNAME }}" | |
# API token, generated in Jenkins, stored in GitHub | |
JENKINS_API_TOKEN: "${{ secrets.RENOVATE_JENKINS_API_TOKEN }}" | |
JENKINS_JOB_URL: "https://builds.gbif.org/job/ipt-renovate" | |
JENKINS_URL: "https://builds.gbif.org" | |
steps: | |
- name: Extract Branch Name | |
id: extract_branch | |
run: | | |
BRANCH_NAME=$(jq -r '.pull_request.head.ref' $GITHUB_EVENT_PATH) | |
echo "::set-output name=branch::$BRANCH_NAME" | |
- name: Trigger Jenkins Job | |
id: trigger_jenkins | |
run: | | |
BRANCH_NAME="${{ steps.extract_branch.outputs.branch }}" | |
# Trigger the Jenkins job and capture the response headers | |
RESPONSE_HEADERS=$(curl -X POST -u "$JENKINS_USERNAME:$JENKINS_API_TOKEN" -s -I -D - "$JENKINS_JOB_URL/buildWithParameters?token=github-renovate-token&BRANCH_NAME=$BRANCH_NAME") | |
# Extract the queue number from the response headers | |
QUEUE_NUMBER=$(echo "$RESPONSE_HEADERS" | grep -i "Location: " | sed -E 's/Location: .*\/([0-9]*)\/.*/\1/') | |
# Set QUEUE_NUMBER as an output variable | |
echo "::set-output name=queue_number::$QUEUE_NUMBER" | |
# Extract the HTTP response status code | |
HTTP_RESPONSE_STATUS=$(echo "$RESPONSE_HEADERS" | grep -i "HTTP/" | awk '{print $2}') | |
echo "Jenkins job queued with queue number: $QUEUE_NUMBER" | |
echo "HTTP Response Status: $HTTP_RESPONSE_STATUS" | |
if [[ "$HTTP_RESPONSE_STATUS" -ne 201 ]]; then | |
echo "Failed to trigger Jenkins job. HTTP Response Code: HTTP_RESPONSE_STATUS" | |
exit 1 | |
fi | |
- name: Check Jenkins Job Status | |
id: check_jenkins_job | |
run: | | |
BRANCH_NAME="${{ steps.extract_branch.outputs.branch }}" | |
# Access the queue_number output from the previous step | |
QUEUE_NUMBER="${{ steps.trigger_jenkins.outputs.queue_number }}" | |
JOB_URL=$(curl -s "$JENKINS_URL/queue/item/$QUEUE_NUMBER/api/json" | jq -r '.executable.url') | |
while true; do | |
JOB_STATUS=$(curl -s "$JENKINS_URL/queue/item/$QUEUE_NUMBER/api/json" | jq -r '.task.color') | |
echo "Job status is $JOB_STATUS" | |
if [[ "$JOB_STATUS" == "red" || "$JOB_STATUS" == "yellow" ]]; then | |
echo "Jenkins job has failed." | |
echo "See more $JOB_URL" | |
exit 1 | |
elif [[ "$JOB_STATUS" == "blue" ]]; then | |
echo "Jenkins job has succeeded." | |
echo "See more $JOB_URL" | |
exit 0 | |
elif [[ "$JOB_STATUS" == "blue_anime" || "$JOB_STATUS" == "red_anime" || "$JOB_STATUS" == "yellow_anime" ]]; then | |
echo "Jenkins job is still running..." | |
sleep 30 # Sleep for 30 seconds before checking again | |
else | |
echo "Jenkins job is in an unknown state $JOB_STATUS" | |
echo "See more $JOB_URL" | |
exit 1 | |
fi | |
done |