Add Python package publishing to PR preview workflow#463
Add Python package publishing to PR preview workflow#463andypettey wants to merge 5 commits intomainfrom
Conversation
Extends the existing PR preview package publishing workflow to support both npm and Python packages published to GitHub Packages. Changes: - Updated trigger paths to include packages/miro-api-python/** - Added new publish-python-preview job that runs in parallel with npm job - Configures Poetry to publish to GitHub Packages PyPI registry - Generates PEP 440 compliant preview versions (e.g., 2.2.4.dev123+abc1234) - Posts PR comment with Python package installation instructions Both jobs run independently when PRs modify their respective packages, allowing teams to test preview versions before merging. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
Coverage report for commit: ef77a8a Summary - Lines: 72.32% | Methods: 73.66% | Branches: 48.66%🤖 comment via lucassabreu/comment-coverage-clover |
Add documentation to both npm and Python package READMEs about testing preview packages published via PR workflow. This change will trigger the workflow to test both package builds. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
📦 Preview Package PublishedA preview version of Preview Version: Installation Instructions
You can view this package in GitHub Packages. |
- Fix pyproject.toml: Move URLs from [project.urls] to [tool.poetry.urls] to resolve Poetry validation error - Add detailed GitHub Packages setup documentation with: - Step-by-step PAT creation instructions - Multiple installation methods (pip, Poetry, config files) - Security best practices and .gitignore recommendations - Troubleshooting guide for common errors This resolves the "project must contain ['name'] properties" error in the preview package publishing workflow. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Changes GitHub Packages approach to workflow artifacts for Python packages, as GitHub Packages has limited PyPI protocol support. Changes: - Replace GitHub Packages PyPI publishing with workflow artifact uploads - Update PR comment to include artifact download instructions - Simplify Python README testing section with artifact-based workflow - Remove complex GitHub Packages authentication setup - Add GitHub CLI download option for easier testing Benefits: - No authentication required to download artifacts - Simpler installation process (direct pip install from .whl file) - More reliable than GitHub Packages PyPI registry - 30-day artifact retention for testing Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Fix deprecated v3 of upload-artifact action to use v4. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
🐍 Python Preview Package BuiltA preview version of Preview Version: Installation InstructionsOption 1: Download and Install from Artifacts (Recommended)
Option 2: Direct Installation with GitHub CLIIf you have GitHub CLI installed: # Download artifact
gh run download 22000888226 -n python-preview-package-pr463
# Install the wheel
pip install miro_api-2.2.4.dev463+f57912a-py3-none-any.whlOption 3: Install with Poetry# Download the wheel file first, then:
poetry add ./miro_api-2.2.4.dev463+f57912a-py3-none-any.whl📦 Artifact Name: |
Summary
Extends the existing PR preview package publishing workflow to support both npm and Python packages published to GitHub Packages.
Changes
Workflow Updates
packages/miro-api-python/**to trigger workflow on Python package changespublish-python-preview: Runs in parallel with the existing npm publishing jobPython Package Publishing
{base_version}.dev{PR_number}+{short_sha}2.2.4.dev123+abc1234https://pypi.pkg.github.comPackage Management
Both packages now publish to GitHub Packages on PR creation/updates:
npm.pkg.github.com@miroapp/miro-apipypi.pkg.github.commiro-apiTesting Instructions
When this PR is merged, any subsequent PR that modifies either package will automatically publish preview versions to GitHub Packages.
To test npm package:
To test Python package:
Benefits
Notes
packages: writepermission (already configured)🤖 Generated with Claude Code