Skip to content

Commit 3df0acf

Browse files
authored
Detect pre-release for GH release from python code (#28)
It's more foolproof this way, rather than trying to detect it in GH actions expression
1 parent b2f4256 commit 3df0acf

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

.github/check-version.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import subprocess
88
import sys
99

10+
from packaging.version import Version
11+
1012

1113
def main() -> int:
1214
version_ref = os.getenv('GITHUB_REF')
@@ -19,10 +21,15 @@ def main() -> int:
1921

2022
if project_version == version:
2123
print(f'✓ GITHUB_REF matches version {project_version!r}')
22-
return 0
2324
else:
24-
print(f'✖ GITHUB_REF version {version!r} does not poetry version {project_version!r}')
25-
return 1
25+
exit(f'✖ GITHUB_REF version {version!r} does not poetry version {project_version!r}')
26+
27+
with open(os.environ['GITHUB_OUTPUT'], 'a') as fh:
28+
ver = Version(project_version)
29+
is_prerelease = ver.is_prerelease or ver.is_devrelease
30+
print(f"is_prerelease={'true' if is_prerelease else 'false'}", file=fh)
31+
32+
return 0
2633

2734

2835
if __name__ == '__main__':

.github/workflows/ci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,8 @@ jobs:
160160
python-version: '3.11'
161161
cache: 'poetry'
162162

163-
- name: check package version
163+
- id: check-version
164+
name: check package version
164165
run: .github/check-version.py
165166

166167
- name: get dist artifacts
@@ -169,7 +170,6 @@ jobs:
169170
name: pypi_files
170171
path: dist
171172

172-
173173
- name: upload to pypi
174174
run: poetry publish
175175
env:
@@ -181,4 +181,4 @@ jobs:
181181
files: |
182182
dist/*
183183
generate_release_notes: true
184-
prerelease: ${{ contains(github.ref, 'a') || contains(github.ref, 'b') || contains(github.ref, 'rc') }}
184+
prerelease: ${{ steps.check-version.output.is_prerelease }}

0 commit comments

Comments
 (0)