From 788c09a9c12d9b10d6e437de5863868407f90c8e Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Tue, 22 Oct 2024 17:26:42 -0400 Subject: [PATCH 1/3] ci: speed up testing Signed-off-by: Henry Schreiner --- .github/workflows/deploy.yml | 27 ++++++++++++++------------- .github/workflows/test.yml | 13 ++++++++++--- 2 files changed, 24 insertions(+), 16 deletions(-) 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..f068a49 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -37,8 +37,10 @@ jobs: with: python-version: ${{ matrix.python-version }} + - uses: astral-sh/setup-uv@v3 + - name: Install test dependencies - run: pip install tox tox-gh-actions + run: uv tool install --with tox-gh-actions --with tox-uv tox - name: Test packaging run: tox -e pkg @@ -57,7 +59,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) }} From 38ea26f748332a07cd1dbbbe0ba8fe9f5a7aa2b8 Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Tue, 22 Oct 2024 17:37:56 -0400 Subject: [PATCH 2/3] chore: remove pkg job with faster/better check in CI already --- .github/workflows/test.yml | 3 --- tox.ini | 15 --------------- 2 files changed, 18 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f068a49..64e9664 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -42,9 +42,6 @@ jobs: - name: Install test dependencies run: uv tool install --with tox-gh-actions --with tox-uv tox - - name: Test packaging - run: tox -e pkg - - name: Run tests with PyTest 6 run: tox env: 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/* From 9dd0ca7087b3b4c77544d661193ece95df7f9409 Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Tue, 22 Oct 2024 17:39:18 -0400 Subject: [PATCH 3/3] Update .github/workflows/test.yml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 64e9664..22c5441 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -39,7 +39,7 @@ jobs: - uses: astral-sh/setup-uv@v3 - - name: Install test dependencies + - name: Install tox run: uv tool install --with tox-gh-actions --with tox-uv tox - name: Run tests with PyTest 6