diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 2c1bd8c..a9fcb63 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,8 +1,9 @@ name: Publish to PyPI on: - release: - types: [published] + push: + tags: + - "v*" permissions: contents: write @@ -12,45 +13,9 @@ env: PROJECT_NAME: typeid-python jobs: - test: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] - - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 9 - submodules: false - - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - - - name: Install uv - uses: astral-sh/setup-uv@v3 - - - name: Sync dependencies (locked) - run: | - uv sync --locked --all-groups - - - name: Run tests - run: | - make test - - - name: Run linters - run: | - make check-linting - test-native: name: Build + import native extension (${{ matrix.os }}, py${{ matrix.python-version }}) runs-on: ${{ matrix.os }} - needs: - - test strategy: fail-fast: false matrix: @@ -58,18 +23,20 @@ jobs: python-version: ["3.11"] steps: - - name: Checkout - uses: actions/checkout@v4 + - uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 + - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - - name: Install Rust - uses: dtolnay/rust-toolchain@stable + - uses: dtolnay/rust-toolchain@stable + + - uses: astral-sh/setup-uv@v3 + + - name: Create .venv + install deps + run: | + uv sync --locked --all-groups - # Build & install the package in-place with the extension - name: Build & install (maturin develop) uses: PyO3/maturin-action@v1 with: @@ -78,13 +45,13 @@ jobs: - name: Sanity check (import extension) run: | - python -c "import typeid; import typeid._base32; print('native ext OK')" + uv run python -c "import typeid; import typeid._base32; print('native ext OK')" build-wheels: name: Build wheels (${{ matrix.os }}, py${{ matrix.python-version }}) runs-on: ${{ matrix.os }} - needs: test-native + needs: [test-native] strategy: fail-fast: false matrix: @@ -111,7 +78,6 @@ jobs: with: command: build args: --release --out dist - working-directory: rust-base32 manylinux: "2_28" - name: Upload wheels @@ -122,7 +88,7 @@ jobs: build-sdist: runs-on: ubuntu-latest - needs: build-wheels + needs: [build-wheels] steps: - name: Checkout uses: actions/checkout@v4 @@ -152,7 +118,7 @@ jobs: publish-package: runs-on: ubuntu-latest - needs: build-sdist + needs: [build-sdist] permissions: contents: read id-token: write @@ -176,7 +142,7 @@ jobs: publish-docs: runs-on: ubuntu-latest - needs: publish-package + needs: [publish-package] steps: - uses: actions/checkout@v4