- Notifications
You must be signed in to change notification settings - Fork 45
Add GitHub Actions workflows for building and publishing wheels #155
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Introduces comprehensive CI/CD pipeline with three workflow files: - Reusable build template supporting multiple Python versions, CUDA configurations, and PyTorch versions - Manual build workflow for on-demand wheel generation with configurable parameters - Automated publish workflow that triggers on version tags to create releases and deploy to PyPI Supports cross-platform builds (x86_64 and ARM), handles C++11 ABI variants, includes build caching for efficiency, and manages both stable and development PyTorch versions with proper CUDA compatibility matrix handling.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces a comprehensive CI/CD pipeline for automated wheel building and publishing, along with correcting GitHub repository URLs to reflect the proper organization name.
- Adds GitHub Actions workflows for building wheels across multiple Python, CUDA, and PyTorch configurations
- Implements automated PyPI publishing for tagged releases
- Updates project metadata URLs from "SmallDoge" to "SmallDoges" organization
Reviewed Changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| pyproject.toml | Updates GitHub URLs to correct organization name |
| .github/workflows/publish.yml | Main workflow for creating releases and publishing to PyPI |
| .github/workflows/build.yml | Manual workflow dispatcher for building wheels |
| .github/workflows/_build.yml | Reusable workflow template for wheel building process |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| steps: | ||
| - name: Get the tag version | ||
| id: extract_branch | ||
| run: echo ::set-output name=branch::${GITHUB_REF#refs/tags/} |
Copilot AI Sep 8, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The ::set-output command is deprecated. Use echo "branch=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT instead.
| run: echo ::set-output name=branch::${GITHUB_REF#refs/tags/} | |
| run: echo "branch=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT |
| uses: actions/create-release@v1 | ||
| env: | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| with: | ||
| tag_name: ${{ steps.extract_branch.outputs.branch }} | ||
| release_name: ${{ steps.extract_branch.outputs.branch }} |
Copilot AI Sep 8, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The actions/create-release@v1 action is deprecated. Consider using softprops/action-gh-release or the newer GitHub CLI approach for creating releases.
| uses: actions/create-release@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| tag_name: ${{ steps.extract_branch.outputs.branch }} | |
| release_name: ${{ steps.extract_branch.outputs.branch }} | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| tag_name: ${{ steps.extract_branch.outputs.branch }} | |
| name: ${{ steps.extract_branch.outputs.branch }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| id: upload_release_asset | ||
| if: inputs.upload-to-release | ||
| uses: actions/upload-release-asset@v1 | ||
| env: | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| with: | ||
| upload_url: ${{ steps.get_current_release.outputs.upload_url }} | ||
| asset_path: ./dist/${{env.wheel_name}} | ||
| asset_name: ${{env.wheel_name}} | ||
| asset_content_type: application/* |
Copilot AI Sep 8, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The actions/upload-release-asset@v1 action is deprecated. Consider using softprops/action-gh-release which can handle both release creation and asset uploading.
| id: upload_release_asset | |
| if: inputs.upload-to-release | |
| uses: actions/upload-release-asset@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ steps.get_current_release.outputs.upload_url }} | |
| asset_path: ./dist/${{env.wheel_name}} | |
| asset_name: ${{env.wheel_name}} | |
| asset_content_type: application/* | |
| if: inputs.upload-to-release | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| files: ./dist/${{env.wheel_name}} | |
| tag_name: ${{ inputs.release-version }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
Introduce a comprehensive CI/CD pipeline with workflows for building wheels across multiple Python and CUDA configurations, and automate publishing to PyPI. Update project metadata URLs to reflect the correct organization name.