From ad5f5070be3e4121116e346a069d416658b11e5a Mon Sep 17 00:00:00 2001 From: GoldenJaden Date: Wed, 10 Jan 2024 14:16:50 +0700 Subject: [PATCH] Make an api request to cancel workflow --- .github/workflows/send-test-results.yml | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/.github/workflows/send-test-results.yml b/.github/workflows/send-test-results.yml index 058302d1..0623853c 100644 --- a/.github/workflows/send-test-results.yml +++ b/.github/workflows/send-test-results.yml @@ -12,8 +12,11 @@ on: jobs: send-message: - permissions: read-all + permissions: + actions: write runs-on: ubuntu-22.04 + env: + API_URL: "https://api.github.com/repos/${{ github.repository }}/actions/runs" steps: - name: Set commit_sha to pull request head sha if: ${{ github.event_name == 'pull_request' }} @@ -35,20 +38,23 @@ jobs: # Find results of the actions with the same SHA as this action via github api and set them to env variable - name: Get actions results run: | - url="https://api.github.com/repos/${{ github.repository }}/actions/runs" echo 'ACTIONS_RESULTS<<0x0a' >> $GITHUB_ENV curl -s -X GET -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}"\ - "$url" | jq -r '.workflow_runs[] | select(((.head_sha=="${{ env.COMMIT_SHA }}") and (.id != ${{ github.run_id }})) + "$API_URL" | jq -r '.workflow_runs[] | select(((.head_sha=="${{ env.COMMIT_SHA }}") and (.id != ${{ github.run_id }})) and ((.conclusion == "success") or (.conclusion == "failure"))) | "\(.conclusion) [\(.name)](\(.html_url))" | gsub("success"; "✅") | gsub("failure"; "❌")' >> $GITHUB_ENV echo '0x0a' >> $GITHUB_ENV - # Skip if all checks were skipped/cancelled - - name: Skip this workflow if none of the results have conclusion "success" or "failure" - uses: styfle/cancel-workflow-action@0.12.0 + # Stop if all checks were skipped/cancelled + - name: Stop this workflow if none of the results have conclusion "success" or "failure" if: ${{ env.ACTIONS_RESULTS == '' }} - with: - workflow_id: ${{ github.run_id }} + run: | + curl -L \ + -X POST \ + -H "Accept: application/vnd.github+json" \ + -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + ${{ env.API_URL }}/${{ github.run_id }}/cancel - name: Send a message uses: codex-team/action-codexbot-notify@v1