Bump log4j_version from 2.23.1 to 2.24.2 #10
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: 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 |