Add Gitea CI that tests on amd64/arm64 and publishes the package to the Gitea PyPI registry
CI / test (amd64) (push) Successful in 59s
CI / test (arm64) (push) Successful in 7m11s
CI / publish (push) Successful in 12s

This commit is contained in:
2026-10-09 13:22:44 +02:00
parent 7cf235db83
commit 9c3f804a6f
4 changed files with 121 additions and 17 deletions
+28 -3
View File
@@ -68,14 +68,39 @@ Note: query **parameters are applied only to the in-memory query**, never to the
## Installation
The package is published to the Gitea PyPI registry, not to the public PyPI.
With Poetry:
```bash
pip install sqlmem
# or with Poetry
poetry add sqlmem
poetry source add --priority=explicit gitea https://gitea.doubynet.eu/api/packages/Honza/pypi/simple
poetry add sqlmem --source gitea
```
`explicit` priority means only packages pinned to this source (`sqlmem`) are looked up there; every other dependency still comes from PyPI. If the registry is not public, store a Gitea access token (scope `read:package`) once per machine:
```bash
poetry config http-basic.gitea <gitea-user> <token>
```
With pip:
```bash
pip install --index-url https://gitea.doubynet.eu/api/packages/Honza/pypi/simple \
--extra-index-url https://pypi.org/simple sqlmem
```
Requires Python 3.14.
### Releasing
Publishing is done by CI (`.gitea/workflows/ci.yml`) after tests pass on amd64 and arm64:
- **Every push to `devel`/`release`** publishes the commit as a post-release of the current `pyproject.toml` version — `<version>.post<run number>`, e.g. `1.17.0.post12`. The registry does not accept re-uploading an existing version, so each commit needs its own number. Post-releases are not pre-releases, so a plain `^1.17` constraint picks them up.
- **Pushing a version tag** publishes the clean version: update `CHANGELOG.md`, bump `version` (`poetry version <x.y.z>`), commit, then `git tag v<x.y.z> && git push origin v<x.y.z>`. A tag that does not match the `pyproject.toml` version is refused.
The job authenticates with the `REGISTRY_TOKEN` secret (scope `write:package`).
## Quick start
```python