bump version to 0.0.7 #10
Workflow file for this run
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
| name: Build and Publish | |
| on: | |
| push: | |
| tags: | |
| - v* | |
| workflow_dispatch: | |
| jobs: | |
| build: | |
| name: Build wheel and sdist | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout source | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Install Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install build dependencies | |
| run: | | |
| python -m pip install -U pip | |
| python -m pip install build twine | |
| - name: Build wheel and sdist | |
| run: | | |
| python -m build | |
| - name: Check distributions | |
| run: | | |
| twine check dist/* | |
| - name: List built files | |
| run: | | |
| ls -la dist/ | |
| - name: Upload wheel artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: wheel | |
| path: dist/*.whl | |
| - name: Upload sdist artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: sdist | |
| path: dist/*.tar.gz | |
| # Optional: test the built wheel installs correctly | |
| test-wheel: | |
| name: Test wheel installation | |
| needs: build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Install Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Download wheel | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: wheel | |
| path: dist/ | |
| - name: Install wheel and verify contents | |
| run: | | |
| # Install without importing (rtxpy requires cupy/GPU at import time) | |
| python -m pip install dist/*.whl --no-deps | |
| python -m pip install numpy | |
| # Verify the package files are installed correctly | |
| python -c " | |
| import importlib.util | |
| import os | |
| # Find where rtxpy was installed | |
| spec = importlib.util.find_spec('rtxpy') | |
| assert spec is not None, 'rtxpy package not found' | |
| pkg_dir = os.path.dirname(spec.origin) | |
| print(f'Package installed at: {pkg_dir}') | |
| # Check that required files exist | |
| init_path = os.path.join(pkg_dir, '__init__.py') | |
| rtx_path = os.path.join(pkg_dir, 'rtx.py') | |
| ptx_path = os.path.join(pkg_dir, 'kernel.ptx') | |
| assert os.path.exists(init_path), f'__init__.py not found' | |
| assert os.path.exists(rtx_path), f'rtx.py not found' | |
| assert os.path.exists(ptx_path), f'kernel.ptx not found' | |
| print('All required files present:') | |
| print(f' - __init__.py') | |
| print(f' - rtx.py') | |
| print(f' - kernel.ptx') | |
| print('Wheel installation test PASSED!') | |
| " | |
| # Publish to PyPI (only on tag push, not workflow_dispatch) | |
| publish: | |
| name: Publish to PyPI | |
| needs: [build, test-wheel] | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') | |
| # Required for trusted publishing to PyPI | |
| permissions: | |
| id-token: write | |
| environment: | |
| name: pypi | |
| url: https://pypi.org/project/rtxpy/ | |
| steps: | |
| - name: Download wheel | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: wheel | |
| path: dist/ | |
| - name: Download sdist | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: sdist | |
| path: dist/ | |
| - name: Publish to PyPI | |
| uses: pypa/gh-action-pypi-publish@release/v1 |