From 35d038567a610f61f0fcc8ff15264d331c452e78 Mon Sep 17 00:00:00 2001 From: core23 Date: Mon, 28 Dec 2020 22:15:08 +0100 Subject: [PATCH] Extract merge pipeline --- .github/workflows/continuous-integration.yml | 83 +------------------- .github/workflows/merge.yml | 81 +++++++++++++++++++ 2 files changed, 82 insertions(+), 82 deletions(-) create mode 100644 .github/workflows/merge.yml diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 3e0da21c..774c6736 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -100,7 +100,7 @@ jobs: run: composer phpstan - name: "Run psalm" - run: vendor/bin/psalm --config=psalm.xml --diff --diff-methods --shepherd --show-info=false --stats --threads=4 + run: vendor/bin/psalm --config=psalm.xml --diff --shepherd --show-info=false --stats --threads=4 - name: "Run phpmd" run: composer phpmd @@ -237,84 +237,3 @@ jobs: - name: "Run mutation tests with pcov and infection/infection" run: ./infection - - merge: - name: "Merge" - - runs-on: "ubuntu-latest" - - needs: - - "coding-standards" - - "static-code-analysis" - - "tests" - - "code-coverage" - - "mutation-tests" - - if: > - github.event_name == 'pull_request' && - github.event.pull_request.draft == false && - contains(github.event.pull_request.labels.*.name, 'automerge') - - steps: - - name: "Request review from @nucleos-bot" - uses: "actions/github-script@v3" - with: - github-token: "${{ secrets.NUCLEOS_BOT_TOKEN }}" - script: | - const pullRequest = context.payload.pull_request - const repository = context.repo - const reviewers = [ - "nucleos-bot", - ] - await github.pulls.requestReviewers({ - owner: repository.owner, - pull_number: pullRequest.number, - repo: repository.repo, - reviewers: reviewers, - }) - - - name: "Assign @nucleos-bot" - uses: "actions/github-script@v3" - with: - github-token: "${{ secrets.NUCLEOS_BOT_TOKEN }}" - script: | - const pullRequest = context.payload.pull_request - const repository = context.repo - const reviewers = [ - "nucleos-bot", - ] - await github.issues.addAssignees({ - assignees: reviewers, - issue_number: pullRequest.number, - owner: repository.owner, - repo: repository.repo, - }) - - - name: "Approve pull request" - uses: "actions/github-script@v3" - if: "github.actor != 'nucleos-bot'" - with: - github-token: "${{ secrets.NUCLEOS_BOT_TOKEN }}" - script: | - const pullRequest = context.payload.pull_request - const repository = context.repo - await github.pulls.createReview({ - event: "APPROVE", - owner: repository.owner, - pull_number: pullRequest.number, - repo: repository.repo, - }) - - - name: "Merge pull request" - uses: "actions/github-script@v3" - with: - github-token: "${{ secrets.NUCLEOS_BOT_TOKEN }}" - script: | - const pullRequest = context.payload.pull_request - const repository = context.repo - await github.pulls.merge({ - merge_method: "merge", - owner: repository.owner, - pull_number: pullRequest.number, - repo: repository.repo, - }) diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml new file mode 100644 index 00000000..fba4c1e0 --- /dev/null +++ b/.github/workflows/merge.yml @@ -0,0 +1,81 @@ +on: + pull_request: + types: [opened, synchronize, reopened, labeled] + +name: "Merge" + +jobs: + merge: + name: "Merge" + + runs-on: "ubuntu-latest" + + if: > + success() && + github.event_name == 'pull_request' && + github.event.pull_request.draft == false && + contains(github.event.pull_request.labels.*.name, 'automerge') + + steps: + - name: "Request review from @nucleos-bot" + uses: "actions/github-script@v3" + with: + github-token: ${{ secrets.NUCLEOS_BOT_TOKEN }} + script: | + const pullRequest = context.payload.pull_request + const repository = context.repo + const reviewers = [ + "nucleos-bot", + ] + await github.pulls.requestReviewers({ + owner: repository.owner, + pull_number: pullRequest.number, + repo: repository.repo, + reviewers: reviewers, + }) + + - name: "Assign @nucleos-bot" + uses: "actions/github-script@v3" + with: + github-token: ${{ secrets.NUCLEOS_BOT_TOKEN }} + script: | + const pullRequest = context.payload.pull_request + const repository = context.repo + const reviewers = [ + "nucleos-bot", + ] + await github.issues.addAssignees({ + assignees: reviewers, + issue_number: pullRequest.number, + owner: repository.owner, + repo: repository.repo, + }) + + - name: "Approve pull request" + uses: "actions/github-script@v3" + if: "github.actor != 'nucleos-bot'" + with: + github-token: ${{ secrets.NUCLEOS_BOT_TOKEN }} + script: | + const pullRequest = context.payload.pull_request + const repository = context.repo + await github.pulls.createReview({ + event: "APPROVE", + owner: repository.owner, + pull_number: pullRequest.number, + repo: repository.repo, + }) + + - name: "Merge pull request" + uses: "actions/github-script@v3" + with: + github-token: ${{ secrets.NUCLEOS_BOT_TOKEN }} + script: | + const pullRequest = context.payload.pull_request + const repository = context.repo + await github.pulls.merge({ + merge_method: "merge", + owner: repository.owner, + pull_number: pullRequest.number, + repo: repository.repo, + })