From 539a53718a2a27a824931a2a8d670201019ad119 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Brunner?= Date: Wed, 31 Jan 2024 13:55:41 +0100 Subject: [PATCH] CI updates This is done by the automated script named upgrade-c2cciutils-to-1.7 --- .github/workflows/dependency-auto-review.yaml | 25 ---- .github/workflows/pr-checks.yaml | 4 +- .../workflows/pull-request-automation.yaml | 110 ++++++++++++++++++ ci/config.yaml | 1 + 4 files changed, 112 insertions(+), 28 deletions(-) delete mode 100644 .github/workflows/dependency-auto-review.yaml create mode 100644 .github/workflows/pull-request-automation.yaml diff --git a/.github/workflows/dependency-auto-review.yaml b/.github/workflows/dependency-auto-review.yaml deleted file mode 100644 index 8a0eb528e..000000000 --- a/.github/workflows/dependency-auto-review.yaml +++ /dev/null @@ -1,25 +0,0 @@ -name: Auto reviews updates - -on: - pull_request: - types: - - opened - - reopened - -jobs: - auto-merge: - name: Auto reviews updates - runs-on: ubuntu-22.04 - timeout-minutes: 5 - if: github.event.pull_request.user.login == 'renovate[bot]' - - steps: - - uses: actions/github-script@v6 - with: - script: |- - github.rest.pulls.createReview({ - owner: context.repo.owner, - repo: context.repo.repo, - pull_number: context.payload.pull_request.number, - event: 'APPROVE', - }) diff --git a/.github/workflows/pr-checks.yaml b/.github/workflows/pr-checks.yaml index a3838fc3d..48e057c48 100644 --- a/.github/workflows/pr-checks.yaml +++ b/.github/workflows/pr-checks.yaml @@ -5,9 +5,7 @@ on: types: - opened - reopened - - labeled - - unlabeled - - edit + - edited - synchronize env: diff --git a/.github/workflows/pull-request-automation.yaml b/.github/workflows/pull-request-automation.yaml new file mode 100644 index 000000000..e98a540a9 --- /dev/null +++ b/.github/workflows/pull-request-automation.yaml @@ -0,0 +1,110 @@ +name: Auto reviews, merge and close pull requests + +on: + pull_request: + types: + - opened + - reopened + - closed + pull_request_target: + types: + - closed + +jobs: + auto-merge: + name: Auto reviews, merge and close pull requests + runs-on: ubuntu-22.04 + timeout-minutes: 5 + + steps: + - name: Print event + run: echo "${GITHUB}" | jq + env: + GITHUB: ${{ toJson(github) }} + - name: Print context + uses: actions/github-script@v7 + with: + script: |- + console.log(context); + - name: Auto reviews Renovate updates + uses: actions/github-script@v7 + with: + script: |- + github.rest.pulls.createReview({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: context.payload.pull_request.number, + event: 'APPROVE', + }) + if: |- + github.event.pull_request.user.login == 'renovate[bot]' + && (github.event.action == 'opened' + || github.event.action == 'reopened') + - name: Auto review and merge snyk auto fix + uses: actions/github-script@v7 + with: + script: |- + github.rest.pulls.createReview({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: context.payload.pull_request.number, + event: 'APPROVE', + }); + github.graphql(` + mutation { + enablePullRequestAutoMerge(input: { + pullRequestId: "${context.payload.pull_request.node_id}", + mergeMethod: SQUASH, + }) { + pullRequest { + autoMergeRequest { + enabledAt + } + } + } + } + `) + if: |- + github.event.pull_request.user.login == 'c2c-bot-gis-ci' + && startsWith(github.head_ref, 'snyk-fix/') + && (github.event.action == 'opened' + || github.event.action == 'reopened') + - name: Restart audit workflow + uses: actions/github-script@v7 + with: + script: |- + let runs = await github.rest.actions.listWorkflowRuns({ + owner: context.repo.owner, + repo: context.repo.repo, + workflow_id: 'audit.yaml', + per_page: 1, + }); + runs = runs.data.workflow_runs; + if (runs.length == 1 && runs[0].status != 'success') { + console.log(`Rerun workflow ${runs[0].id} ${runs[0].status}`); + github.rest.actions.reRunWorkflowFailedJobs({ + owner: context.repo.owner, + repo: context.repo.repo, + run_id: runs[0].id, + }); + } + if: |- + github.event.pull_request.user.login == 'c2c-bot-gis-ci' + && (startsWith(github.head_ref, 'snyk-fix/') + || startsWith(github.head_ref, 'dpkg-update/')) + && github.event.action == 'closed' + && github.event.pull_request.merged == true + - name: Auto close pre-commit.ci autoupdate + uses: actions/github-script@v7 + with: + script: |- + github.rest.pulls.update({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: context.payload.pull_request.number, + state: 'closed', + }); + if: |- + github.event.pull_request.user.login == 'pre-commit-ci' + && (github.event.action == 'opened' + || github.event.action == 'reopened') diff --git a/ci/config.yaml b/ci/config.yaml index 211def171..ba2f9dd44 100644 --- a/ci/config.yaml +++ b/ci/config.yaml @@ -13,3 +13,4 @@ audit: - example-project/ci/requirements.txt checks: required_workflows: false + codespell: false