Migrate to GitHub Actions automated release process#13
Closed
jensens wants to merge 1 commit intorefactor-package-layoutfrom
Closed
Migrate to GitHub Actions automated release process#13jensens wants to merge 1 commit intorefactor-package-layoutfrom
jensens wants to merge 1 commit intorefactor-package-layoutfrom
Conversation
This commit modernizes the CI/CD pipeline to match the mxrepo workflow and implements automated releases via GitHub Actions. ## New Workflow Files - Add lint.yml: Automated code quality checks (ruff, isort) - Add typecheck.yml: Type checking with mypy - Add release.yml: Automated PyPI publishing workflow - Publishes to Test PyPI on every master push - Publishes to production PyPI on GitHub releases - Add dependabot.yml: Weekly GitHub Actions dependency updates ## Updated Workflow Files - Update test.yml: - Switch from actions/setup-python to astral-sh/setup-uv@v7 - Update Python versions from 3.7-3.12 to 3.10-3.14 - Add workflow_call and workflow_dispatch triggers - Implement coverage artifact collection and reporting - Add dedicated coverage job with HTML report generation - Update to latest action versions (checkout@v5) - Update docs.yml: - Switch to astral-sh/setup-uv@v7 for consistency - Update action versions (checkout@v5, setup-node@v4) - Update Node.js version from 16 to 20 - Add workflow_call trigger for reusability ## Build System Migration - Add pyproject.toml: - Migrate from setup.cfg to modern pyproject.toml format - Use hatch-vcs for automatic versioning from git tags - Use hatch-fancy-pypi-readme for combined readme - Configure ruff, isort, mypy, pytest, and coverage - Maintain backward compatibility with zest.releaser config ## Documentation - Add RELEASE.md: Comprehensive release process documentation - Automated GitHub release workflow - PyPI Trusted Publishing setup instructions - Version numbering guidelines - Troubleshooting guide - Migration notes from zest.releaser ## Related - Addresses #3: GitHub Actions for testing with coverage artifacts - Migrates release process from manual zest.releaser to automated GitHub releases - Follows same pattern as https://github.com/mxstack/mxrepo
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
This PR modernizes the CI/CD pipeline to match the mxrepo workflow and implements automated releases via GitHub Actions.
Changes
New Workflow Files
Updated Workflow Files
test.yml:
actions/setup-pythontoastral-sh/setup-uv@v7for faster dependency managementworkflow_callandworkflow_dispatchtriggers for reusabilitydocs.yml:
astral-sh/setup-uv@v7for consistencyworkflow_calltrigger for reusabilityBuild System Migration
pyproject.toml (new):
hatch-vcsfor automatic versioning from git tagshatch-fancy-pypi-readmefor combined readmeDocumentation
RELEASE.md (new):
Post-Merge Actions Required
After merging this PR, the following steps are needed:
Configure GitHub Environments:
release-test-pypienvironmentrelease-pypienvironmentSet up PyPI Trusted Publishing:
Test the Workflow:
Related Issues
Testing
Migration Notes
zest.releaserwill be replaced by automated GitHub releases