From 2508886e65fce31435a213e8f761a9b55e05c755 Mon Sep 17 00:00:00 2001 From: rickstaa Date: Sun, 12 Mar 2023 22:22:06 +0100 Subject: [PATCH] ci: fix derivative warning and invalid pr labeler --- .../workflows/check_derivatives_change.yml | 1 + ...l => create_derivative_change_warning.yml} | 9 ++- .github/workflows/label_invalid_prs.yaml | 58 +++++++++++++++++++ 3 files changed, 67 insertions(+), 1 deletion(-) rename .github/workflows/{derivative_change_warning.yml => create_derivative_change_warning.yml} (79%) create mode 100644 .github/workflows/label_invalid_prs.yaml diff --git a/.github/workflows/check_derivatives_change.yml b/.github/workflows/check_derivatives_change.yml index ab31e4c8..2ee8e36f 100644 --- a/.github/workflows/check_derivatives_change.yml +++ b/.github/workflows/check_derivatives_change.yml @@ -48,6 +48,7 @@ jobs: mkdir -p ./check_derivatives_change echo ${{ steps.changed-files.outputs.any_changed }} > ./check_derivatives_change/derivative_files_changed echo ${{ steps.changes.outputs.changed }} > ./check_derivatives_change/incorrect_derivative_change + echo ${{ github.event.number }} > ./check_derivatives_change/issue_number - uses: actions/upload-artifact@v3 with: name: check_derivatives_change diff --git a/.github/workflows/derivative_change_warning.yml b/.github/workflows/create_derivative_change_warning.yml similarity index 79% rename from .github/workflows/derivative_change_warning.yml rename to .github/workflows/create_derivative_change_warning.yml index 8421db0d..0bc4dcff 100644 --- a/.github/workflows/derivative_change_warning.yml +++ b/.github/workflows/create_derivative_change_warning.yml @@ -14,19 +14,25 @@ jobs: addDerivativeChangeWarning: runs-on: ubuntu-latest name: Add warning if derivative change was detected - # if: github.event.workflow_run.event == 'pull_request' + if: github.event.workflow_run.event == 'pull_request' steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Download artifact uses: dawidd6/action-download-artifact@v2 with: name: check_derivatives_change workflow: check_derivatives_change.yml + run_id: ${{github.event.workflow_run.id }} - name: Retrieve derivative check result from artifacts id: changed run: | derivative_files_changed=`cat derivative_files_changed` echo "derivative_files_changed=${derivative_files_changed}" >> "${GITHUB_OUTPUT}" + issue_number=`cat issue_number` + echo "issue_number=${issue_number}" >> "${GITHUB_OUTPUT}" - if: steps.changed.outputs.derivative_files_changed == 'true' run: | @@ -40,3 +46,4 @@ jobs: message: | ${{ env.WARNING_MSG }} comment_tag: execution + pr_number: ${{ steps.changed.outputs.issue_number }} diff --git a/.github/workflows/label_invalid_prs.yaml b/.github/workflows/label_invalid_prs.yaml new file mode 100644 index 00000000..d496e9e5 --- /dev/null +++ b/.github/workflows/label_invalid_prs.yaml @@ -0,0 +1,58 @@ +name: Label invalid PRs + +on: + workflow_run: + workflows: ["Check derivatives change"] + types: + - completed + +permissions: + contents: read + pull-requests: write + +jobs: + labelInvalidPRs: + runs-on: ubuntu-latest + name: Add warning if derivative change was detected + if: github.event.workflow_run.event == 'pull_request' + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Download artifact + uses: dawidd6/action-download-artifact@v2 + with: + name: check_derivatives_change + workflow: check_derivatives_change.yml + run_id: ${{github.event.workflow_run.id }} + + - name: Retrieve derivative check result from artifacts + id: changed + run: | + issue_number=`cat issue_number` + echo "issue_number=${issue_number}" >> "${GITHUB_OUTPUT}" + + - name: Add 'invalid' label if PR changes were wrong. + if: github.event.workflow_run.conclusion == 'failure' + uses: actions/github-script@v5 + with: + github-token: ${{secrets.GITHUB_TOKEN}} + script: | + github.rest.issues.addLabels({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + labels: ['invalid'] + }) + - name: Remove 'invalid' label if PR changes were correct. + if: github.event.workflow_run.conclusion == 'success' + uses: actions/github-script@v5 + with: + github-token: ${{secrets.GITHUB_TOKEN}} + script: | + github.rest.issues.removeLabel({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + name: 'invalid' + })