diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 87c84508..ea2a8e49 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,7 +12,17 @@ on: - main jobs: - build: + check-package: + name: Build & inspect our package. + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: hynek/build-and-inspect-python-package@v2 + test: + needs: [check-package] runs-on: ${{ matrix.os }} strategy: @@ -93,9 +103,11 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Download built packages from the build-package job. + uses: actions/download-artifact@v4 with: - fetch-depth: 0 - + name: Packages + path: dist - name: Set up Python ${{ matrix.python }} uses: actions/setup-python@v5 with: @@ -109,11 +121,13 @@ jobs: - name: Test without coverage if: "! matrix.use_coverage" - run: "tox -e ${{ matrix.tox_env }}" + shell: bash + run: "tox run -e ${{ matrix.tox_env }} --installpkg dist/*.whl" - name: Test with coverage if: "matrix.use_coverage" - run: "tox -e ${{ matrix.tox_env }}-coverage" + shell: bash + run: "tox run -e ${{ matrix.tox_env }}-coverage --installpkg dist/*.whl" - name: Upload coverage if: matrix.use_coverage && github.repository == 'pytest-dev/pluggy' @@ -125,27 +139,17 @@ jobs: verbose: true deploy: + needs: [check-package] if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') && github.repository == 'pytest-dev/pluggy' runs-on: ubuntu-latest permissions: id-token: write steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - uses: actions/setup-python@v5 + - name: Download built packages from the build-package job. + uses: actions/download-artifact@v4 with: - python-version: "3.11" - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install --upgrade build - - - name: Build package - run: python -m build --sdist --wheel --outdir dist/ - + name: Packages + path: dist - name: Publish package uses: pypa/gh-action-pypi-publish@v1.10.3 with: