Skip to content

Commit 5c9a197

Browse files
committed
ci: re-generate requirements.txt files on push
1 parent aed7d9d commit 5c9a197

File tree

5 files changed

+54
-3
lines changed

5 files changed

+54
-3
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: Generate requirements.txt
2+
3+
on:
4+
push:
5+
branches:
6+
- "master"
7+
- 'foreman-*.*'
8+
9+
jobs:
10+
generate-requirements-txt:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Checkout
14+
uses: actions/checkout@v4
15+
with:
16+
fetch-depth: 0
17+
token: ${{ secrets.GH_TOKEN }}
18+
19+
- name: Install Python tools
20+
run: |
21+
# https://github.com/hermetoproject/pybuild-deps/issues/295
22+
pip install --upgrade "pip<25.1" && pip install --upgrade poetry~=2.1.3 poetry-plugin-export pybuild-deps pip-tools
23+
24+
- name: Export requirements.txt
25+
run: |
26+
poetry export -f requirements.txt --output requirements.txt
27+
poetry export --only dev -f requirements.txt --output requirements-dev.txt
28+
pybuild-deps compile --generate-hashes requirements.txt -o requirements-build.txt
29+
30+
# Prepare requirements-build.in from pyproject.toml
31+
sed -n '/^\[build-system\]/,/^\[/p' pyproject.toml | \
32+
grep 'requires[[:space:]]*=' | \
33+
sed 's/.*requires[[:space:]]*=[[:space:]]*\[\(.*\)\]/\1/' | \
34+
sed 's/"//g; s/,[[:space:]]*/\n/g' | \
35+
sed 's/^[[:space:]]*//; s/[[:space:]]*$$//; /^$$/d' > requirements-build.in
36+
37+
pip-compile --allow-unsafe --generate-hashes -o requirements-extra.txt requirements-build.in
38+
39+
- name: Commit and Push
40+
run: |
41+
git config --global user.name "github-actions[bot]"
42+
git config --global user.email "github-actions[bot]@users.noreply.github.com"
43+
44+
git add .
45+
46+
if git diff --staged --quiet; then
47+
echo "No changes to commit"
48+
else
49+
git commit -m "chore: re-generate requirements.txt files"
50+
git push
51+
fi

.hermetic_builds/generate_requirements_build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ pip3 install "pip<25"
55
cd /var/tmp
66

77
pybuild-deps compile --generate-hashes requirements.txt -o requirements-build.txt
8-
pip-compile requirements-build.in --allow-unsafe --generate-hashes -o requirements-extras.txt
8+
pip-compile requirements-build.in --allow-unsafe --generate-hashes -o requirements-extra.txt

.tekton/vulnerability-engine-pull-request.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ spec:
3434
- name: hermetic
3535
value: "true"
3636
- name: prefetch-input
37-
value: '[{"type": "pip", "path": ".", "requirements_files": ["requirements.txt", "requirements-build.txt", "requirements-extras.txt"]}, {"type": "rpm", "path": "./.hermetic_builds"}]'
37+
value: '[{"type": "pip", "path": ".", "requirements_files": ["requirements.txt", "requirements-build.txt", "requirements-extra.txt"]}, {"type": "rpm", "path": "./.hermetic_builds"}]'
3838
- name: prefetch-dev-package-managers
3939
value: "true"
4040
pipelineRef:

.tekton/vulnerability-engine-push.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ spec:
3131
- name: hermetic
3232
value: "true"
3333
- name: prefetch-input
34-
value: '[{"type": "pip", "path": ".", "requirements_files": ["requirements.txt", "requirements-build.txt", "requirements-extras.txt"]}, {"type": "rpm", "path": "./.hermetic_builds"}]'
34+
value: '[{"type": "pip", "path": ".", "requirements_files": ["requirements.txt", "requirements-build.txt", "requirements-extra.txt"]}, {"type": "rpm", "path": "./.hermetic_builds"}]'
3535
- name: prefetch-dev-package-managers
3636
value: "true"
3737
pipelineRef:

0 commit comments

Comments
 (0)