Fix PyPI upload and reorder release process
- Fix PyPI upload to only include valid distribution files (.whl and .tar.gz) - Reorder release process to publish to PyPI before creating git tags/GitHub releases - Prevents .gitignore upload errors and ensures cleaner rollback on PyPI failures
This commit is contained in:
parent
fd15a72cda
commit
7ab1e4b276
@ -126,7 +126,12 @@ class PyPIPublisher:
|
|||||||
comment="Automated release via mflux-release-script",
|
comment="Automated release via mflux-release-script",
|
||||||
)
|
)
|
||||||
|
|
||||||
dist_files = list(Path("dist").glob("*"))
|
# Only select valid distribution files (.whl and .tar.gz)
|
||||||
|
dist_files = []
|
||||||
|
dist_dir = Path("dist")
|
||||||
|
dist_files.extend(dist_dir.glob("*.whl"))
|
||||||
|
dist_files.extend(dist_dir.glob("*.tar.gz"))
|
||||||
|
|
||||||
if not dist_files:
|
if not dist_files:
|
||||||
raise ValueError("No distribution files found in dist/")
|
raise ValueError("No distribution files found in dist/")
|
||||||
|
|
||||||
|
|||||||
@ -37,21 +37,21 @@ class ReleaseManager:
|
|||||||
if ReleaseManager._is_release_complete(git_tag_exists, github_release_exists):
|
if ReleaseManager._is_release_complete(git_tag_exists, github_release_exists):
|
||||||
return
|
return
|
||||||
|
|
||||||
# 4. Create git tag if needed
|
# 4. Handle PyPI publishing FIRST (before creating git artifacts)
|
||||||
if not git_tag_exists:
|
|
||||||
GitOperations.create_and_push_tag(tag_name, version)
|
|
||||||
|
|
||||||
# 5. Create GitHub release if needed
|
|
||||||
if not github_release_exists:
|
|
||||||
release_notes = ChangelogParser.extract_release_notes_from_changelog(version)
|
|
||||||
GitHubAPI.create_github_release(github_token, github_repo, tag_name, version, release_notes)
|
|
||||||
|
|
||||||
# 6. Handle PyPI publishing
|
|
||||||
if ReleaseManager._should_publish_to_pypi(git_tag_exists, github_release_exists, package_name, version):
|
if ReleaseManager._should_publish_to_pypi(git_tag_exists, github_release_exists, package_name, version):
|
||||||
PyPIPublisher.build_and_verify_package()
|
PyPIPublisher.build_and_verify_package()
|
||||||
PyPIPublisher.publish_to_test_pypi(test_pypi_token, package_name, version)
|
PyPIPublisher.publish_to_test_pypi(test_pypi_token, package_name, version)
|
||||||
PyPIPublisher.publish_to_pypi(pypi_token, package_name, version)
|
PyPIPublisher.publish_to_pypi(pypi_token, package_name, version)
|
||||||
|
|
||||||
|
# 5. Create git tag if needed
|
||||||
|
if not git_tag_exists:
|
||||||
|
GitOperations.create_and_push_tag(tag_name, version)
|
||||||
|
|
||||||
|
# 6. Create GitHub release if needed
|
||||||
|
if not github_release_exists:
|
||||||
|
release_notes = ChangelogParser.extract_release_notes_from_changelog(version)
|
||||||
|
GitHubAPI.create_github_release(github_token, github_repo, tag_name, version, release_notes)
|
||||||
|
|
||||||
print(f"🎉 Release process completed successfully for version {version}!")
|
print(f"🎉 Release process completed successfully for version {version}!")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user