Skip to content

Commit 4983255

Browse files
committed
Enhance CI workflows for SBOM generation and update version in _version.py
- Updated publish-python-sdk.yml and release-python-sdk.yml to generate a requirements.txt file that excludes editable local package references and includes only production dependencies. - Improved SBOM generation steps to output both JSON and XML formats. - Adjusted commands for tool version checks to ensure correct execution. - Bumped version in _version.py from 0.0.2b7 to 0.0.2b8.
1 parent b60829f commit 4983255

3 files changed

Lines changed: 30 additions & 10 deletions

File tree

.github/workflows/publish-python-sdk.yml

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,21 +92,31 @@ jobs:
9292
9393
- name: Generate requirements file for SBOM
9494
run: |
95-
uv export --locked --format=requirements-txt --output-file=requirements.txt
96-
echo "Generated requirements.txt for SBOM creation from lockfile"
95+
# Try to use uv to export only production dependencies without the current package
96+
# Use --no-dev to exclude dev dependencies and generate a clean requirements file
97+
uv export --locked --no-dev --format=requirements-txt --output-file=requirements-full.txt
98+
# Debug: Show what's in the requirements file
99+
echo "Contents of requirements-full.txt:"
100+
cat requirements-full.txt
101+
# Filter out any editable local package references
102+
# This handles: -e ., -e ./, -e ../, -e file://..., file://... etc.
103+
grep -v -E '^-e\s+\.$|^-e\s+\.\/$|^-e\s+\.\.\/$|^-e\s+file:|^file:' requirements-full.txt > requirements.txt || echo "# No dependencies after filtering" > requirements.txt
104+
echo "Contents of filtered requirements.txt:"
105+
cat requirements.txt
106+
echo "Generated requirements.txt for SBOM creation from lockfile (excluding editable local package)"
97107
98108
- name: Install SBOM generation tools
99109
run: |
100110
uv tool install cyclonedx-bom
101111
echo "Installed cyclonedx-bom version:"
102-
uv tool run cyclonedx-py --version
112+
uv tool run --from cyclonedx-bom cyclonedx-py --version
103113
uv tool install pip-audit
104114
echo "Installed pip-audit version:"
105115
uv tool run pip-audit --version
106116
107117
- name: Generate SBOM with CycloneDX
108118
run: |
109-
uv tool run cyclonedx-py requirements --format json --output-file sbom-cyclonedx.json requirements.txt
119+
uv tool run --from cyclonedx-bom cyclonedx-py requirements --of json --output-file sbom-cyclonedx.json requirements.txt
110120
echo "Generated CycloneDX SBOM in JSON format"
111121
112122
- name: Generate vulnerability report with pip-audit

.github/workflows/release-python-sdk.yml

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -124,22 +124,32 @@ jobs:
124124
125125
- name: Generate requirements file for SBOM
126126
run: |
127-
uv export --locked --format=requirements-txt --output-file=requirements.txt
128-
echo "Generated requirements.txt for SBOM creation from lockfile"
127+
# Try to use uv to export only production dependencies without the current package
128+
# Use --no-dev to exclude dev dependencies and generate a clean requirements file
129+
uv export --locked --no-dev --format=requirements-txt --output-file=requirements-full.txt
130+
# Debug: Show what's in the requirements file
131+
echo "Contents of requirements-full.txt:"
132+
cat requirements-full.txt
133+
# Filter out any editable local package references
134+
# This handles: -e ., -e ./, -e ../, -e file://..., file://... etc.
135+
grep -v -E '^-e\s+\.$|^-e\s+\.\/$|^-e\s+\.\.\/$|^-e\s+file:|^file:' requirements-full.txt > requirements.txt || echo "# No dependencies after filtering" > requirements.txt
136+
echo "Contents of filtered requirements.txt:"
137+
cat requirements.txt
138+
echo "Generated requirements.txt for SBOM creation from lockfile (excluding editable local package)"
129139
130140
- name: Install SBOM generation tools
131141
run: |
132142
uv tool install cyclonedx-bom
133143
echo "Installed cyclonedx-bom version:"
134-
uv tool run cyclonedx-py --version
144+
uv tool run --from cyclonedx-bom cyclonedx-py --version
135145
uv tool install pip-audit
136146
echo "Installed pip-audit version:"
137147
uv tool run pip-audit --version
138148
139149
- name: Generate SBOM with CycloneDX
140150
run: |
141-
uv tool run cyclonedx-py requirements --format json --output-file sbom-cyclonedx.json requirements.txt
142-
uv tool run cyclonedx-py requirements --format xml --output-file sbom-cyclonedx.xml requirements.txt
151+
uv tool run --from cyclonedx-bom cyclonedx-py requirements --of json --output-file sbom-cyclonedx.json requirements.txt
152+
uv tool run --from cyclonedx-bom cyclonedx-py requirements --of xml --output-file sbom-cyclonedx.xml requirements.txt
143153
echo "Generated CycloneDX SBOM in JSON and XML formats"
144154
145155
- name: Generate vulnerability report with pip-audit
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version = "0.0.2b7"
1+
version = "0.0.2b8"

0 commit comments

Comments
 (0)