From d68f8e71383359b8e207eff7a0adf70118ea5bdf Mon Sep 17 00:00:00 2001 From: Avi Vajpeyi Date: Wed, 11 Dec 2024 13:02:24 +1300 Subject: [PATCH] update the PR commenter and precommit checker --- .../workflows/pr_artifact_url_commenter.yml | 44 ++++++++----------- .github/workflows/precommit-checks.yml | 14 ++++-- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/.github/workflows/pr_artifact_url_commenter.yml b/.github/workflows/pr_artifact_url_commenter.yml index dae1097fd..50abed9b3 100644 --- a/.github/workflows/pr_artifact_url_commenter.yml +++ b/.github/workflows/pr_artifact_url_commenter.yml @@ -1,4 +1,4 @@ -name: Comment on Pull request +name: Comment on Pull Request on: workflow_run: @@ -9,60 +9,51 @@ on: jobs: comment: runs-on: ubuntu-latest - continue-on-error: true + if: ${{ github.event.workflow_run.conclusion == 'success' }} + continue-on-error: true # THIS SHOULD BE REMOVED IN THE FUTURE steps: - - name: Get Artifact and Pull request info + - name: Get Artifact and Pull Request Info env: - GITHUB_TOKEN: ${{ github.token }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} WORKFLOW_RUN_EVENT_OBJ: ${{ toJSON(github.event.workflow_run) }} OWNER: ${{ github.repository_owner }} REPO: ${{ github.event.repository.name }} run: | PREVIOUS_JOB_ID=$(jq -r '.id' <<< "$WORKFLOW_RUN_EVENT_OBJ") - echo "Previous Job ID: $PREVIOUS_JOB_ID" echo "PREVIOUS_JOB_ID=$PREVIOUS_JOB_ID" >> "$GITHUB_ENV" SUITE_ID=$(jq -r '.check_suite_id' <<< "$WORKFLOW_RUN_EVENT_OBJ") - echo "Previous Suite ID: $SUITE_ID" echo "SUITE_ID=$SUITE_ID" >> "$GITHUB_ENV" ARTIFACT_ID=$(gh api "/repos/$OWNER/$REPO/actions/artifacts" \ - --jq ".artifacts.[] | - select(.workflow_run.id==${PREVIOUS_JOB_ID}) | - select(.expired==false) | - .id") - - echo "Artifact ID: $ARTIFACT_ID" + --jq ".artifacts[] | select(.workflow_run.id==$PREVIOUS_JOB_ID and .expired==false) | .id" | head -n1) echo "ARTIFACT_ID=$ARTIFACT_ID" >> "$GITHUB_ENV" - PR_NUMBER=$(jq -r '.pull_requests[0].number' \ - <<< "$WORKFLOW_RUN_EVENT_OBJ") - - echo "Pull request Number: $PR_NUMBER" + PR_NUMBER=$(jq -r '.pull_requests[0].number // empty' <<< "$WORKFLOW_RUN_EVENT_OBJ") echo "PR_NUMBER=$PR_NUMBER" >> "$GITHUB_ENV" - HEAD_SHA=$(jq -r '.pull_requests[0].head.sha' \ - <<< "$WORKFLOW_RUN_EVENT_OBJ") - - echo "Head SHA: $HEAD_SHA" + HEAD_SHA=$(jq -r '.head_sha' <<< "$WORKFLOW_RUN_EVENT_OBJ") echo "HEAD_SHA=$HEAD_SHA" >> "$GITHUB_ENV" + - name: Find Comment - uses: peter-evans/find-comment@v2 + uses: peter-evans/find-comment@v3 id: find-comment + if: env.PR_NUMBER with: issue-number: ${{ env.PR_NUMBER }} comment-author: 'github-actions[bot]' + - name: Update Comment + uses: peter-evans/create-or-update-comment@v3 + if: env.PR_NUMBER env: JOB_PATH: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ env.PREVIOUS_JOB_ID }}" - ARTIFACT_URL: "${{ github.server_url }}/${{ github.repository }}/suites/$SUITE_ID/artifacts/$ARTIFACT_ID" - HEAD_SHA: "${{ env.HEAD_SHA }}" - uses: peter-evans/create-or-update-comment@v3 + ARTIFACT_URL: "${{ github.server_url }}/${{ github.repository }}/suites/${{ env.SUITE_ID }}/artifacts/${{ env.ARTIFACT_ID }}" with: issue-number: ${{ env.PR_NUMBER }} comment-id: ${{ steps.find-comment.outputs.comment-id }} edit-mode: replace - body: |- + body: | ![badge] Build Successful! You can find a link to the downloadable artifact below. @@ -73,4 +64,5 @@ jobs: | Logs | ${{ env.JOB_PATH }} | | Download | ${{ env.ARTIFACT_URL }} | - [badge]: https://img.shields.io/badge/Build_Success!-0d1117?style=for-the-badge&labelColor=3fb950&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmZmZmZmIj48cGF0aCBkPSJNMjEuMDMgNS43MmEuNzUuNzUgMCAwIDEgMCAxLjA2bC0xMS41IDExLjVhLjc0Ny43NDcgMCAwIDEtMS4wNzItLjAxMmwtNS41LTUuNzVhLjc1Ljc1IDAgMSAxIDEuMDg0LTEuMDM2bDQuOTcgNS4xOTVMMTkuOTcgNS43MmEuNzUuNzUgMCAwIDEgMS4wNiAwWiI+PC9wYXRoPjwvc3ZnPg== + [badge]: https://img.shields.io/badge/Build_Success!-0d1117?style=for-the-badge&labelColor=3fb950&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSIjZmZmZmZmIj48cGF0aCBkPSJNMjEuMDMgNS43MmEuNzUuNzUgMCAwIDEgMCAxLjA2bC0xMS41IDExLjVhLjc0Ny43NDcgMCAwIDEtMS4wNzItLjAxMmwtNS41LTUuNzVhLjc1Ljc1IDMgMSAxIDEuMDg0LTEuMDM2bDQuOTcgNS4xOTVMMTkuOTcgNS43MmEuNzUuNzUgMCAwIDEgMS4wNiAwWiI+PC9wYXRoPjwvc3ZnPg== + diff --git a/.github/workflows/precommit-checks.yml b/.github/workflows/precommit-checks.yml index bc7f4762c..66885dc15 100644 --- a/.github/workflows/precommit-checks.yml +++ b/.github/workflows/precommit-checks.yml @@ -1,16 +1,24 @@ -name: precommit checks +name: Pre-commit Checks on: push: + pull_request: + +# Ensures only the latest workflow run for the same branch is active, canceling any in-progress runs. +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true jobs: pre-commit: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: - python-version: 3.8 + python-version: '3.9' - uses: pre-commit/action@v3.0.0 + - uses: pre-commit-ci/lite-action@v1.0.1 + if: always()