-
-
Notifications
You must be signed in to change notification settings - Fork 2
Workflows
github-actions[bot] edited this page Dec 2, 2025
·
4 revisions
This project uses GitHub Actions to automate code quality checks on every push and pull request to the main branch. This guide provides an overview of each workflow and explains how to run the same checks locally.
-
test.yml: Runs thepytesttest suite and performs static analysis withmypy,ty, andruff. -
lint.yml: Enforces consistent code style usingruff,flake8, andpylint. -
typecheck.yml: Validates type hints withmypy,ty,pyright, andpytype. -
code-quality.yml: Scans for security vulnerabilities and code complexity withBandit,Safety,Radon, andXenon. -
pre-commit.yml: Validates the.pre-commit-config.yamlfile. -
publish-packages.yml: Publishes the package to PyPI when version changes are detected on themainbranch. -
release.yml: Creates GitHub releases automatically when version tags are pushed.
Pre-commit hooks identify issues before committing code. They automatically run ruff, mypy, and several security checks.
# Install the pre-commit hooks
uv run pre-commit install
# Run the hooks on all files
uv run pre-commit run --all-filesThe checks can also be run manually.
# Linting and formatting
uv run ruff check src/ tests/
uv run ruff format src/ tests/
# Type checking
uv run mypy src/simple_resume/ --strict
uv run ty check src/simple_resume/
# Testing
uv run pytestThe release.yml workflow automates GitHub release creation when tags are pushed.
# Tag the version (must start with 'v')
git tag v0.1.2
git push origin v0.1.2The workflow performs the following actions:
- Builds the package using
uv build - Extracts version information from the tag
- Generates a changelog from commits since the previous tag
- Creates a GitHub release with:
- Generated changelog
- Installation instructions
- Built distribution artifacts (
.tar.gzand.whlfiles) - Prerelease flag for tags containing
alpha,beta, orrc
The publish-packages.yml workflow monitors the main branch for version changes in pyproject.toml. When a version change is detected:
- Builds and verifies the package distributions
- Publishes to PyPI (requires
PYPI_API_TOKENsecret)
All workflows use Python 3.9 and uv. Security and complexity scan reports become build artifacts in GitHub Actions.