-
Notifications
You must be signed in to change notification settings - Fork 28
76 lines (68 loc) · 2.65 KB
/
dependabot-pipcompile.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
name: Pip-compile
on:
pull_request:
types:
- opened
- reopened
- synchronize
paths:
- requirements.txt
- requirements-extras.txt
workflow_dispatch:
inputs: {}
# Need these permissions for the GITHUB_TOKEN to be able to post a comment to a PR
permissions:
issues: write
pull-requests: write
jobs:
versions-check:
runs-on: ubuntu-24.04
container:
image: python:3.9-alpine
steps:
# Need to install git before running the checkout action in a container
- name: Install dependencies
run: apk update && apk add --no-cache git
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install pip-tools
run: |
pip install --upgrade pip
pip install --no-cache-dir pip-tools
# This step uses multi-line string injection to GitHub environment [1]
# [1] https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions#multiline-strings
- name: Run pip-compile to update requirements.txt
run: |
git config --global --add safe.directory "*"
pip-compile --generate-hashes --output-file=requirements.txt pyproject.toml
pip-compile \
--all-extras \
--allow-unsafe \
--generate-hashes \
--output-file=requirements-extras.txt \
pyproject.toml
{
echo 'GIT_DIFF<<EOF'
git diff -p
echo EOF
} >> "$GITHUB_ENV"
# Only comment on PRs when changes to requirements files are needed, based on:
# - https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/using-conditions-to-control-job-execution
# - https://github.com/actions/github-script?tab=readme-ov-file#comment-on-an-issue
# - https://github.com/actions/github-script/issues/247#issuecomment-1079839739
# - https://github.com/actions/github-script/issues/220#issuecomment-1007633429
- name: Comment on pull request
uses: actions/github-script@v7
if: env.GIT_DIFF != ''
env:
DIFF: "Changes to requirements files are needed. If you're experiencing CI test failures, please apply the following patch and update the pull request:\n```diff\n${{ env.GIT_DIFF }}\n```"
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: process.env.DIFF
})