From 64c4c25ac1a0533dd7bf7bf40fed1d84390f5e9d Mon Sep 17 00:00:00 2001 From: Brian Koopman Date: Wed, 4 Feb 2026 10:35:47 -0500 Subject: [PATCH 1/3] Create test build workflow --- .github/workflows/build-test.yaml | 48 +++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .github/workflows/build-test.yaml diff --git a/.github/workflows/build-test.yaml b/.github/workflows/build-test.yaml new file mode 100644 index 00000000..636adafd --- /dev/null +++ b/.github/workflows/build-test.yaml @@ -0,0 +1,48 @@ +name: Build and Test Wheel +# Try to catch any issues before releases + +on: + push: + #branches: [ main ] + paths-ignore: + - 'docs/**' + - '**.rst' + - '**.md' + - '.readthedocs.yaml' + +jobs: + wheel: + name: build and test wheel + runs-on: ubuntu-latest + + steps: + - name: set up Python 3.8 + uses: actions/setup-python@v6 + with: + python-version: 3.8 + + - name: clone sodetlib + uses: actions/checkout@v6 + with: + fetch-depth: 0 # fetch all tags + + - name: install build dependencies + run: | + python3 -m pip install --upgrade build twine + + - name: build wheel + run: | + python3 -m build + + - name: install wheel + run: | + python3 -m pip install dist/sodetlib*.whl + + - name: install requirements + run: | + python3 -m pip install -r requirements.txt + + - name: test import + working-directory: ./tests # avoid direct usage of ./sodetlib/ + run: | + python3 -c 'import sodetlib' From 9416a7df59885e74844e8cda89010bcbcd0b1528 Mon Sep 17 00:00:00 2001 From: Brian Koopman Date: Wed, 4 Feb 2026 11:17:03 -0500 Subject: [PATCH 2/3] Create publish workflow --- .github/workflows/build-test.yaml | 2 +- .github/workflows/publish.yaml | 73 +++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/publish.yaml diff --git a/.github/workflows/build-test.yaml b/.github/workflows/build-test.yaml index 636adafd..cc62c87c 100644 --- a/.github/workflows/build-test.yaml +++ b/.github/workflows/build-test.yaml @@ -3,7 +3,7 @@ name: Build and Test Wheel on: push: - #branches: [ main ] + branches: [ master ] paths-ignore: - 'docs/**' - '**.rst' diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml new file mode 100644 index 00000000..4537c676 --- /dev/null +++ b/.github/workflows/publish.yaml @@ -0,0 +1,73 @@ +# Note: Renaming this file will break the PyPI trusted publisher. +# https://docs.pypi.org/trusted-publishers/ +name: Publish to PyPI + +on: + release: + types: [ released ] + push: + tags: + # v0.X.Y pre-release tags + - 'v0.*.*a*' + - 'v0.*.*b*' + - 'v0.*.*rc*' + +jobs: + build: + name: build wheel + runs-on: ubuntu-latest + + steps: + - name: set up Python 3.8 + uses: actions/setup-python@v6 + with: + python-version: 3.8 + + - name: clone sodetlib + uses: actions/checkout@v6 + with: + fetch-depth: 0 # fetch all tags + + - name: install build dependencies + run: | + python3 -m pip install --upgrade build twine + + - name: build wheel + run: | + python3 -m build + + - name: install wheel + run: | + python3 -m pip install dist/sodetlib*.whl + + - name: install requirements + run: | + python3 -m pip install -r requirements.txt + + - name: test import + working-directory: ./tests # avoid direct usage of ./sodetlib/ + run: | + python3 -c 'import sodetlib' + + - name: upload dist + uses: actions/upload-artifact@v6 + with: + path: ./dist/ + + pypi-publish: + name: upload release to PyPI + needs: build + runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/p/sodetlib + permissions: + id-token: write # required for trusted publishing + steps: + - name: download dist + uses: actions/download-artifact@v5 + with: + path: dist + + - name: publish package distributions to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 From 0ae44fd64fd4a43faf3a3e335186e5280bef4742 Mon Sep 17 00:00:00 2001 From: Brian Koopman Date: Wed, 4 Feb 2026 16:09:35 -0500 Subject: [PATCH 3/3] Drop twine install from builds --- .github/workflows/build-test.yaml | 2 +- .github/workflows/publish.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-test.yaml b/.github/workflows/build-test.yaml index cc62c87c..34818492 100644 --- a/.github/workflows/build-test.yaml +++ b/.github/workflows/build-test.yaml @@ -28,7 +28,7 @@ jobs: - name: install build dependencies run: | - python3 -m pip install --upgrade build twine + python3 -m pip install --upgrade build - name: build wheel run: | diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 4537c676..78480b7b 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -30,7 +30,7 @@ jobs: - name: install build dependencies run: | - python3 -m pip install --upgrade build twine + python3 -m pip install --upgrade build - name: build wheel run: |