diff --git a/.github/workflows/pre-commit-status.yml b/.github/workflows/pre-commit-status.yml new file mode 100644 index 00000000000..bf55e69665d --- /dev/null +++ b/.github/workflows/pre-commit-status.yml @@ -0,0 +1,41 @@ +name: Report Pre-commit Check Status + +on: + pull_request_target: + types: [opened, reopened, synchronize, labeled, unlabeled] + +permissions: + statuses: write + +jobs: + report-run: + name: Check if the PR has run the pre-commit checks + runs-on: ubuntu-latest + steps: + - name: Report pending + uses: conda/actions/set-commit-status@v24.2.0 + with: + context: "Pre-commit checks" + state: pending + description: The pre-commit checks need to be successful before merging + + - name: Wait for pre-commit checks to complete + uses: lucasssvaz/wait-on-workflow@v1 + if: | + contains(github.event.pull_request.labels.*.name, 'Status: Pending Merge') + id: wait-on-workflow + with: + timeout: 10 + interval: 30 + workflow: pre-commit.yml + sha: ${{ github.event.pull_request.head.sha || github.sha }} + + - name: Report success + uses: conda/actions/set-commit-status@v24.2.0 + if: | + contains(github.event.pull_request.labels.*.name, 'Status: Pending Merge') && + steps.wait-on-workflow.outputs.conclusion == 'success' + with: + context: "Pre-commit checks" + state: success + description: All pre-commit checks passed diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 08ae9a0c67c..b01545f2619 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -1,14 +1,14 @@ -name: Pre-commit check +name: Pre-commit hooks on: pull_request: - types: [opened, reopened, synchronize, labeled] + types: [opened, reopened, synchronize, labeled, unlabeled] jobs: lint: if: | contains(github.event.pull_request.labels.*.name, 'Status: Pending Merge') - name: Checking if any fixes are needed + name: Check if fixes are needed runs-on: ubuntu-latest steps: - name: Checkout latest commit