diff --git a/.github/workflows/pip-compile-merge.yml b/.github/workflows/pip-compile-merge.yml new file mode 100644 index 00000000..378fb268 --- /dev/null +++ b/.github/workflows/pip-compile-merge.yml @@ -0,0 +1,23 @@ +on: + workflow_dispatch: {} + schedule: + - cron: "20 20 * * 2" + +name: "pip-compile: merge PR" +jobs: + pip_compile_merge: + name: pip-compile automerge + runs-on: ubuntu-latest + steps: + - name: Look up pull request + uses: juliangruber/find-pull-request-action@v1 + id: find-pull-request + with: + branch: deps/pip-compile + - name: Merge Pull Request + uses: juliangruber/merge-pull-request-action@v1 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + number: ${{ steps.find-pull-request.outputs.number }} + method: merge + if: ${{ steps.find-pull-request.outputs.number }} diff --git a/.github/workflows/pip-compile.yml b/.github/workflows/pip-compile.yml new file mode 100644 index 00000000..49165f11 --- /dev/null +++ b/.github/workflows/pip-compile.yml @@ -0,0 +1,55 @@ +on: + workflow_dispatch: {} + schedule: + - cron: "20 20 * * 0" + +name: "pip-compile: create PR" +jobs: + pip_compile: + name: pip-compile + runs-on: ubuntu-latest + steps: + - name: Setup Python + uses: actions/setup-python@v2 + with: + # TODO: multi-version support + python-version: 3.8 + + + - name: pip-compile + uses: technote-space/create-pr-action@v2 + with: + EXECUTE_COMMANDS: | + pip install pip-tools + pip-compile -U --generate-hashes requirements.in + pip-compile -U --generate-hashes test-requirements.in + + COMMIT_MESSAGE: 'chore: scheduled pip-compile' + COMMIT_NAME: 'GitHub Actions' + COMMIT_EMAIL: 'noreply@github.com' + PR_BRANCH_PREFIX: deps/ + PR_BRANCH_NAME: 'pip-compile' + PR_TITLE: 'chore: scheduled pip-compile' + PR_BODY: '## Update dependencies + + This is a scheduled update of Python dependencies within this repo managed by pip-compile. + + This change will be submitted automatically within a few days if all checks have + succeeded.' + + + - name: Look up pull request + uses: juliangruber/find-pull-request-action@v1 + id: find-pull-request + with: + branch: deps/pip-compile + + # Immediately approve it if we can so it can be merged later + - name: Approve Pull Request + uses: juliangruber/approve-pull-request-action@v1 + with: + github-token: ${{ secrets.APPROVAL_TOKEN }} + number: ${{ steps.find-pull-request.outputs.number }} + # allow errors because token may be unset. + continue-on-error: true + if: ${{ steps.find-pull-request.outputs.number }}