fix(#1): Use uv run for twine in publish pipeline step
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed

twine is installed into the venv via uv pip install, so it must be
invoked with `uv run twine` to find it on PATH. Also simplify version
check by using twine's --skip-existing flag instead of pip index lookup.

Refs #1

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-14 22:44:51 -06:00
parent 0222bdbcba
commit 62179042e7

View File

@@ -66,24 +66,18 @@ steps:
commands: commands:
- | - |
uv sync --all-extras --frozen uv sync --all-extras --frozen
CURRENT=$(python3 -c "import tomllib; print(tomllib.load(open('pyproject.toml','rb'))['project']['version'])") uv pip install twine
CURRENT=$$(uv run python3 -c "import tomllib; print(tomllib.load(open('pyproject.toml','rb'))['project']['version'])")
echo "Building version $$CURRENT..." echo "Building version $$CURRENT..."
uv build uv build
uv pip install twine echo "Publishing $$CURRENT..."
PUBLISHED=$(pip index versions mosaicstack-telemetry \ uv run twine upload \
--index-url "https://$$GITEA_USER:$$GITEA_TOKEN@git.mosaicstack.dev/api/packages/mosaic/pypi/simple/" \ --repository-url "https://git.mosaicstack.dev/api/packages/mosaic/pypi" \
2>/dev/null | grep -oP '\(\K[^)]+' || echo "0.0.0") --username "$$GITEA_USER" \
if [ "$$CURRENT" = "$$PUBLISHED" ]; then --password "$$GITEA_TOKEN" \
echo "Version $$CURRENT already published, skipping" --skip-existing \
else dist/*
echo "Publishing $$CURRENT (was $$PUBLISHED)..." echo "Published mosaicstack-telemetry $$CURRENT"
twine upload \
--repository-url "https://git.mosaicstack.dev/api/packages/mosaic/pypi" \
--username "$$GITEA_USER" \
--password "$$GITEA_TOKEN" \
dist/*
echo "Published mosaicstack-telemetry $$CURRENT"
fi
when: when:
- branch: [main, develop] - branch: [main, develop]
event: [push, manual, tag] event: [push, manual, tag]