diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..86c00c0 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,30 @@ +name: Release +on: + push: + tags: + - v* +jobs: + pypi: + name: Publish to PyPI + runs-on: ubuntu-latest + environment: + name: release + permissions: + id-token: write + contents: read + steps: + - name: Checkout + uses: actions/checkout@v5 + - name: Install uv + uses: astral-sh/setup-uv@v7 + - name: Install Python 3.13 + run: uv python install 3.13 + - name: Build + run: uv build + # Check that basic features work and we didn't miss to include crucial files + - name: Smoke test (wheel) + run: uv run --isolated --no-project --with dist/*.whl tests/smoke_test.py + - name: Smoke test (source distribution) + run: uv run --isolated --no-project --with dist/*.tar.gz tests/smoke_test.py + - name: Publish + run: uv publish diff --git a/tests/smoke_test.py b/tests/smoke_test.py new file mode 100644 index 0000000..b65527c --- /dev/null +++ b/tests/smoke_test.py @@ -0,0 +1,11 @@ +import ksuid + +basic = ksuid.Ksuid() +parsed = ksuid.Ksuid.from_base62(str(basic)) +assert parsed.timestamp == basic.timestamp + +ms = ksuid.Ksuid() +parsed = ksuid.Ksuid.from_base62(str(ms)) +assert parsed.timestamp == basic.timestamp + +print("Ok")