From 212142123afe325ad0456d6c9393e56ce659141e Mon Sep 17 00:00:00 2001 From: Pankaj Agrawal Date: Fri, 26 Mar 2021 12:26:09 +0100 Subject: [PATCH] chore: fix auto merge dependabot PR --- .github/workflows/auto-merge.yml | 54 ++++++++++++++++++++++++++++++++ .github/workflows/build.yml | 31 +++++++----------- 2 files changed, 66 insertions(+), 19 deletions(-) create mode 100644 .github/workflows/auto-merge.yml diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml new file mode 100644 index 000000000..9a60e4267 --- /dev/null +++ b/.github/workflows/auto-merge.yml @@ -0,0 +1,54 @@ +name: Merge me! + +on: + workflow_run: + workflows: ["Build"] + types: [completed] + +jobs: + merge-me: + name: Merge me! + runs-on: ubuntu-latest + if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success' && github.actor == 'dependabot[bot]' + steps: + - name: 'Download artifact' + uses: actions/github-script@v3.1.0 + with: + script: | + var artifacts = await github.actions.listWorkflowRunArtifacts({ + owner: context.repo.owner, + repo: context.repo.repo, + run_id: ${{github.event.workflow_run.id }}, + }); + var matchArtifact = artifacts.data.artifacts.filter((artifact) => { + return artifact.name == "pr" + })[0]; + var download = await github.actions.downloadArtifact({ + owner: context.repo.owner, + repo: context.repo.repo, + artifact_id: matchArtifact.id, + archive_format: 'zip', + }); + var fs = require('fs'); + fs.writeFileSync('${{github.workspace}}/pr.zip', Buffer.from(download.data)); + - run: unzip pr.zip + - name: Merge me! + uses: actions/github-script@v3 + with: + script: | + var fs = require('fs'); + var issue_number = Number(fs.readFileSync('./NR')); + + github.pulls.createReview({ + owner: context.payload.repository.owner.login, + repo: context.payload.repository.name, + pull_number: issue_number, + event: 'APPROVE' + }) + github.pulls.merge({ + owner: context.payload.repository.owner.login, + repo: context.payload.repository.name, + pull_number: issue_number, + merge_method: 'squash' + }) + github-token: ${{ secrets.AUTOMERGE }} \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b8affdda3..d4b8a596f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -48,25 +48,18 @@ jobs: java-version: ${{ matrix.java }} - name: Build with Maven run: mvn -B package --file pom.xml - - auto-merge: + savepr: runs-on: ubuntu-latest - needs: [ build ] - if: github.base_ref == 'master' && github.actor == 'dependabot[bot]' + name: Save PR number if running on PR by dependabot + if: github.actor == 'dependabot[bot]' steps: - - uses: actions/github-script@0.2.0 + - name: Create Directory and save issue + run: | + mkdir -p ./pr + echo ${{ github.event.number }} + echo ${{ github.event.number }} > ./pr/NR + - uses: actions/upload-artifact@v2 + name: Updload artifact with: - script: | - github.pullRequests.createReview({ - owner: context.payload.repository.owner.login, - repo: context.payload.repository.name, - pull_number: context.payload.pull_request.number, - event: 'APPROVE' - }) - github.pullRequests.merge({ - owner: context.payload.repository.owner.login, - repo: context.payload.repository.name, - pull_number: context.payload.pull_request.number, - merge_method: 'squash' - }) - github-token: ${{ secrets.AUTOMERGE }} + name: pr + path: pr/