Skip to content

Merge pull request #2 from dacort/fix/big-files #4

Merge pull request #2 from dacort/fix/big-files

Merge pull request #2 from dacort/fix/big-files #4

Workflow file for this run

name: Release
on:
push:
tags:
- 'v*.*.*'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
version: "latest"
- name: Build package
run: uv build
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: dist
path: dist/
test-pypi:
runs-on: ubuntu-latest
environment: testpypi
permissions:
id-token: write
needs: build
if: startsWith(github.ref, 'refs/tags/v') && contains(github.ref, '-') # Only for pre-releases
steps:
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: dist
path: dist/
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
version: "latest"
- name: Publish to TestPyPI
run: uv publish --publish-url https://test.pypi.org/legacy/
pypi:
runs-on: ubuntu-latest
environment: pypi
permissions:
id-token: write
needs: build
if: startsWith(github.ref, 'refs/tags/v') && !contains(github.ref, '-') # Only for stable releases
steps:
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: dist
path: dist/
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
version: "latest"
- name: Publish to PyPI
run: uv publish
github-release:
runs-on: ubuntu-latest
needs: [build]
if: always() && (needs.test-pypi.result == 'success' || needs.pypi.result == 'success' || (needs.test-pypi.result == 'skipped' && needs.pypi.result == 'skipped'))
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: dist
path: dist/
- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
files: dist/*
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}