diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml new file mode 100644 index 0000000..1ea5276 --- /dev/null +++ b/.github/workflows/CI.yml @@ -0,0 +1,32 @@ +name: CI + +on: + pull_request: + branches: + - main + +jobs: + CI: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + python-version: ["3.10", "3.11", "3.12", "3.13"] + + steps: + - uses: actions/checkout@v4 + + - uses: astral-sh/setup-uv@v4 + with: + version: ">0.5.0" + enable-cache: true + cache-dependency-glob: "uv.lock" + + - run: uv python install ${{ matrix.python-version }} + - run: uv sync --all-extras + + - name: pre-commit + run: uv run pre-commit run --all-files + + - name: testing + run: uv run pytest tests diff --git a/.github/workflows/publishing.yml b/.github/workflows/publishing.yml new file mode 100644 index 0000000..3bdeedf --- /dev/null +++ b/.github/workflows/publishing.yml @@ -0,0 +1,42 @@ +name: publishing to PI + +on: + push: + tags: + - "v*" + +jobs: + build: + name: build + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - uses: astral-sh/setup-uv@v4 + with: + version: ">0.5.0" + enable-cache: true + cache-dependency-glob: "uv.lock" + - run: uv build + - uses: actions/upload-artifact@v4 + with: + name: alphacodings + path: dist/ + + publishing: + name: publishing + needs: + - build + runs-on: ubuntu-latest + environment: + name: publishing + url: https://pypi.org/p/alphacodings + permissions: + id-token: write + + steps: + - uses: actions/download-artifact@v4 + with: + name: alphacodings + path: dist/ + - run: uv publish diff --git a/README.md b/README.md index 2f5e6bb..e0b4614 100644 --- a/README.md +++ b/README.md @@ -54,9 +54,9 @@ if __name__ == "__main__": ## 🧠 motivation -The library is inspired by [R. Heaton](https://github.com/robert)'s base26 implementation and his story on manipulating data transmission in restrictive network channels on transatlantic flights using alphabetic-only encodings and tokenization. +The library is inspired by [R. Heaton](https://github.com/robert)'s base26 implementation and his story of manipulating data transmission in restrictive network channels on long-distance flights using alphabetic-only encodings and tokenization. -have a look at the original [repository](https://github.com/robert/pyskywifi) and [story blog post](https://robertheaton.com/pyskywifi) and show him some love! +have a look at the original [repository](https://github.com/robert/pyskywifi) and [blog post](https://robertheaton.com/pyskywifi) and show him some love! ## 📊 benchmarking