4 Commits
Author SHA1 Message Date
LatteandClaude Opus 4.8 edf2298e20 ci: authenticate twine with REGISTRY_TOKEN secret
CI / lint (pull_request) Successful in 51s
CI / test (pull_request) Successful in 59s
CI / lint (push) Successful in 53s
CI / publish (pull_request) Has been skipped
CI / test (push) Successful in 1m0s
CI / publish (push) Successful in 51s
The repo already has a REGISTRY_TOKEN secret (Gitea access token with
package scope); the workflow referenced a non-existent PACKAGE_REGISTRY_TOKEN
and fell back to the auto GITHUB_TOKEN, which is not granted package-write,
so every upload was rejected. Point twine at REGISTRY_TOKEN.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 18:01:22 +02:00
LatteandClaude Opus 4.8 d76c8f87a8 ci: drop unsupported --skip-existing from twine upload
CI / lint (pull_request) Successful in 51s
CI / test (pull_request) Successful in 59s
CI / lint (push) Successful in 52s
CI / publish (pull_request) Has been skipped
CI / test (push) Successful in 58s
CI / publish (push) Failing after 30s
Gitea's PyPI registry rejects twine's --skip-existing flag
(UnsupportedConfiguration), which failed every publish run. Remove it and
instead tolerate an "already exists" conflict in the shell, so dev (unique
.devN versions) always publishes and a main re-run of an existing release
is treated as success rather than a hard failure.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 17:57:50 +02:00
LatteandClaude Opus 4.8 a136853126 ci: grant contents:read so publish can checkout private repo
CI / lint (pull_request) Successful in 52s
CI / test (pull_request) Successful in 58s
CI / publish (pull_request) Has been skipped
CI / lint (push) Successful in 51s
CI / test (push) Successful in 56s
CI / publish (push) Failing after 29s
Setting `permissions: packages: write` alone dropped every other scope to
none, so actions/checkout could not clone the private repo and the publish
job failed before building. Add contents:read, and use github.actor (more
reliably populated than gitea.actor) as the twine username.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 17:52:14 +02:00
LatteandClaude Opus 4.8 585acc766c ci: add Gitea Actions workflow (lint, test, publish)
CI / lint (pull_request) Successful in 53s
CI / test (pull_request) Successful in 1m0s
CI / publish (pull_request) Has been skipped
CI / lint (push) Successful in 53s
CI / test (push) Successful in 59s
CI / publish (push) Failing after 39s
Lint (ruff) and test (pytest, fail under 80% coverage) on every PR and
push to main/dev. On a merge to main/dev, build the sdist+wheel and
publish to the Gitea PyPI registry — main as a clean release, dev as a
unique .devN pre-release. No Docker; runs on uv.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 17:34:59 +02:00