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/