diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml index b9892e5..10fb238 100644 --- a/.github/workflows/python-publish.yml +++ b/.github/workflows/python-publish.yml @@ -16,8 +16,28 @@ permissions: contents: read jobs: + test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: "3.x" + + - name: Install package with dev dependencies + run: | + python -m pip install --upgrade pip + python -m pip install -e .[dev] + + - name: Run tests + run: python -m pytest + release-build: runs-on: ubuntu-latest + needs: + - test steps: - uses: actions/checkout@v4 @@ -28,7 +48,6 @@ jobs: - name: Build release distributions run: | - # NOTE: put your own distribution build steps here. python -m pip install build python -m build diff --git a/.github/workflows/python-testpypi-publish.yml b/.github/workflows/python-testpypi-publish.yml new file mode 100644 index 0000000..12afb13 --- /dev/null +++ b/.github/workflows/python-testpypi-publish.yml @@ -0,0 +1,87 @@ +# This workflow will upload a Python Package to PyPI when a release is created +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries + +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +name: Upload Python Package to TestPyPI + +on: + workflow_dispatch: + +permissions: + contents: read + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: "3.x" + + - name: Install package with dev dependencies + run: | + python -m pip install --upgrade pip + python -m pip install -e .[dev] + + - name: Run tests + run: python -m pytest + + test-build: + runs-on: ubuntu-latest + needs: test + + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: "3.x" + + - name: Build test distributions + run: | + python -m pip install build + python -m build + + - name: Upload distributions + uses: actions/upload-artifact@v4 + with: + name: testpypi-dists + path: dist/ + + testpypi-publish: + runs-on: ubuntu-latest + needs: + - test-build + permissions: + # IMPORTANT: this permission is mandatory for trusted publishing + id-token: write + + # Dedicated environments with protections for publishing are strongly recommended. + # For more information, see: https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment#deployment-protection-rules + environment: + name: testpypi + # OPTIONAL: uncomment and update to include your PyPI project URL in the deployment status: + url: https://test.pypi.org/project/talespire-encoding + # + # ALTERNATIVE: if your GitHub Release name is the PyPI project version string + # ALTERNATIVE: exactly, uncomment the following line instead: + # url: https://pypi.org/project/YOURPROJECT/${{ github.event.release.name }} + + steps: + - name: Retrieve test distributions + uses: actions/download-artifact@v4 + with: + name: testpypi-dists + path: dist/ + + - name: Publish test distributions to TestPyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + repository-url: https://test.pypi.org/legacy/ diff --git a/pyproject.toml b/pyproject.toml index 86e09f0..586f1ac 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "talespire-encoding" -version = "1.2.3" +version = "1.2.4" description = "Encoding and decoding tools for TaleSpire data" readme = "README.md" requires-python = ">=3.10" @@ -20,7 +20,7 @@ Repository = "https://github.com/Baldrax/TaleSpire-Encoding-Python" [project.optional-dependencies] dev = [ - "pytest" + "pytest==8.3.4" ] [tool.setuptools] diff --git a/ts_encoding/__init__.py b/ts_encoding/__init__.py index 2507e85..e5d96ab 100644 --- a/ts_encoding/__init__.py +++ b/ts_encoding/__init__.py @@ -1,4 +1,4 @@ -__version__ = "1.2.3" +__version__ = "1.2.4" from .exceptions import ( SlabExceedsSizeLimit,