feat: add publish-to-test-pypi.yml #25
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: publish-to-test-pypi | |
| on: | |
| push: | |
| branches: ["test_pypi"] | |
| jobs: | |
| build: | |
| name: Build distribution | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 | |
| - name: Set up Python | |
| uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c | |
| with: | |
| python-version: "3.x" | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2 | |
| - name: Build distributions with uv | |
| run: uv build | |
| - name: Install twine | |
| run: uv tool install twine | |
| - name: Rename distributions with build number | |
| run: | | |
| BUILD_NUMBER=${GITHUB_RUN_NUMBER} | |
| for file in dist/*.whl; do | |
| base=$(basename "$file") | |
| new=$(echo "$base" | sed "s/\(-py[0-9]\)/-${BUILD_NUMBER}\1/") | |
| mv "dist/$base" "dist/$new" | |
| echo "Renamed $base → $new" | |
| done | |
| - name: Validate metadata | |
| run: | | |
| uv run twine check dist/* | |
| - name: Install built wheel | |
| run: uv pip install dist/*.whl | |
| - name: Test import | |
| run: uv run python -c "import em511" | |
| - name: Upload distributions as artifact | |
| uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 | |
| with: | |
| name: dist-files | |
| path: dist/ | |
| publish-to-test-pypi: | |
| name: Publish Python distribution to TestPyPI | |
| needs: [build] | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: testpypi | |
| url: https://test.pypi.org/p/python-em511 | |
| permissions: | |
| id-token: write | |
| steps: | |
| - name: Download all build artifacts | |
| uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 | |
| with: | |
| name: dist-files | |
| path: dist/ | |
| - name: Publish distribution to TestPyPI | |
| uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e | |
| with: | |
| repository-url: https://test.pypi.org/legacy/ |