diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index f966a09..229b86e 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,30 +1,31 @@ name: deploy on: + workflow_dispatch: + pull_request: push: + branches: + - main tags: - v* jobs: - deploy: + dist: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v4 + - uses: actions/checkout@v4 + - uses: hynek/build-and-inspect-python-package@v2 - - name: Set up Python - uses: actions/setup-python@v5 + deploy: + runs-on: ubuntu-latest + if: startsWith(github.ref, 'refs/tags/v') + steps: + - uses: actions/download-artifact@v4 with: - python-version: '3.11' - - - name: Install dependencies for build - run: pip install --upgrade setuptools build - - - name: Build - run: python -m build + name: Packages + path: dist - name: Publish package uses: pypa/gh-action-pypi-publish@release/v1 with: - user: __token__ password: ${{ secrets.pypi_password }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5c7fd55..22c5441 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -37,11 +37,10 @@ jobs: with: python-version: ${{ matrix.python-version }} - - name: Install test dependencies - run: pip install tox tox-gh-actions + - uses: astral-sh/setup-uv@v3 - - name: Test packaging - run: tox -e pkg + - name: Install tox + run: uv tool install --with tox-gh-actions --with tox-uv tox - name: Run tests with PyTest 6 run: tox @@ -57,7 +56,12 @@ jobs: post-test: name: All tests passed + if: always() + needs: [test] runs-on: ubuntu-latest - needs: test + timeout-minutes: 2 steps: - - run: echo ok + - name: Decide whether the needed jobs succeeded or failed + uses: re-actors/alls-green@release/v1 + with: + jobs: ${{ toJSON(needs) }} diff --git a/tox.ini b/tox.ini index 3e51181..877d362 100644 --- a/tox.ini +++ b/tox.ini @@ -1,7 +1,6 @@ [tox] envlist = py{38,39,310,311,312}-pytest{6,7,8} - pkg [gh-actions] python = @@ -25,17 +24,3 @@ deps = pytest8: pytest>=8.0.0,<9.0.0 commands = {envpython} -m pytest {posargs} - -[testenv:pkg] -skip_install = true -deps = - twine - build -commands = - {envpython} -c 'import os.path, shutil, sys; \ - dist_dir = os.path.join("{toxinidir}", "dist"); \ - os.path.isdir(dist_dir) or sys.exit(0); \ - print("Removing \{!s\} contents...".format(dist_dir), file=sys.stderr); \ - shutil.rmtree(dist_dir)' - {envpython} -m build --outdir {toxinidir}/dist/ {toxinidir} - {envpython} -m twine check --strict dist/*