Skip to content

Bump commons-io:commons-io from 2.16.1 to 2.18.0 #1

Bump commons-io:commons-io from 2.16.1 to 2.18.0

Bump commons-io:commons-io from 2.16.1 to 2.18.0 #1

name: Rebuild Approved PR
on:
issue_comment:
types: [created]
jobs:
rebuild_approved_pr:
runs-on: ubuntu-latest
if: >
github.event.comment.user.login == 'Gamebuster19901' &&
github.event.comment.body == '@WilderForge rebuild' &&
github.event.issue.pull_request != null
steps:
- name: Fetch Approval Workflow Run
id: fetch_approval_run
run: |
# Fetch the pull request details
PR_URL=$(jq -r '.pull_request.url' <<< '${{ toJson(github.event.issue) }}')
echo "PR URL: $PR_URL"
PR_DETAILS=$(curl -s -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" "$PR_URL")
# echo "PR Details: $PR_DETAILS" # Debugging: output PR details to see its contents
PR_NUMBER=$(echo "$PR_DETAILS" | jq -r '.number')
echo "PR Number: $PR_NUMBER" # Debugging: output the PR number
# Get the commit SHA directly from the pull request head object
PR_SHA=$(echo "$PR_DETAILS" | jq -r '.head.sha')
echo "PR SHA: $PR_SHA" # Debugging: output the PR SHA
if [ -z "$PR_SHA" ]; then
echo "Pull request head commit SHA is null. Exiting."
exit 1
fi
# Get the list of workflow runs for the repository
WORKFLOWS=$(curl -s -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
"https://api.github.com/repos/${{ github.repository }}/actions/runs")
# echo "Workflow Runs: $WORKFLOWS" # Debugging: output workflow runs data
# Find the latest completed run of the 'Validate Approval' workflow that matches the head SHA
APPROVAL_RUN=$(echo "$WORKFLOWS" | jq -r \
'.workflow_runs[] | select(.name == "Validate Approval" and .head_sha == "'$PR_SHA'" and .status == "completed") | .id' | head -n 1)
echo "Approval Run: $APPROVAL_RUN" # Debugging: output the approval run ID
if [ -z "$APPROVAL_RUN" ]; then
echo "The head of this PR has not been validated. Exiting."
exit 1
fi
# Save the approval run ID to environment variable for use in later steps
echo "APPROVAL_RUN=$APPROVAL_RUN" >> $GITHUB_ENV
- name: Check Approval
id: check_approval_status
run: |
# Fetch the details of the approval workflow run using the saved APPROVAL_RUN ID
APPROVAL_STATUS=$(curl -s -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
"https://api.github.com/repos/${{ github.repository }}/actions/runs/${{ env.APPROVAL_RUN }}")
CONCLUSION=$(echo "$APPROVAL_STATUS" | jq -r '.conclusion')
STATUS=$(echo "$APPROVAL_STATUS" | jq -r '.status')
echo "Approval Workflow Status: $STATUS" # Debugging: output the workflow status
echo "Approval Workflow Conclusion: $CONCLUSION" # Debugging: output the workflow conclusion
if [[ "$CONCLUSION" != "success" || "$STATUS" != "completed" ]]; then
echo "The head of this PR has not been validated. Exiting."
exit 1
fi
echo "The head of this PR has been validated."
- name: Trigger Build Commit Workflow
if: success()
run: |
# Get the source branch of the PR (from the pull_request object)
PR_BRANCH="${{ github.event.pull_request.head.ref }}"
# Define the API endpoint for dispatching the workflow
WORKFLOW_URL="https://api.github.com/repos/${{ github.repository }}/actions/workflows/build.yml/dispatches"
# Trigger the workflow for the branch of the pull request
echo "Triggering workflow for branch: $PR_BRANCH"
RESPONSE=$(curl -s -w "%{http_code}" -o response.json -X POST \
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
-d '{"ref": "refs/heads/'${PR_BRANCH}'", "inputs": {"sha": "${{ github.event.review.commit_id }}"}}' \
"$WORKFLOW_URL")
# Check if the HTTP status code is 2xx (successful)
if [[ "$RESPONSE" -lt 200 || "$RESPONSE" -ge 300 ]]; then
echo "Error triggering the workflow: HTTP $RESPONSE"
cat response.json
exit 1
else
echo "Successfully triggered the workflow."
fi