diff --git a/.woodpecker.yml b/.woodpecker.yml index b91aa66..6c009d4 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -63,25 +63,48 @@ steps: from_secret: gitea_username GITEA_TOKEN: from_secret: gitea_token + CI_COMMIT_BRANCH: ${CI_COMMIT_BRANCH} + CI_COMMIT_TAG: ${CI_COMMIT_TAG} + CI_PIPELINE_NUMBER: ${CI_PIPELINE_NUMBER} commands: - | uv sync --all-extras --frozen uv pip install twine - CURRENT=$$(uv run python3 -c "import tomllib; print(tomllib.load(open('pyproject.toml','rb'))['project']['version'])") - echo "Building version $$CURRENT..." + BASE_VERSION=$$(uv run python3 -c "import tomllib; print(tomllib.load(open('pyproject.toml','rb'))['project']['version'])") + + if [ -n "$$CI_COMMIT_TAG" ] || [ "$$CI_COMMIT_BRANCH" = "main" ]; then + VERSION="$$BASE_VERSION" + echo "Release build: $$VERSION" + elif [ "$$CI_COMMIT_BRANCH" = "develop" ]; then + VERSION="$${BASE_VERSION}.dev$${CI_PIPELINE_NUMBER}" + echo "Dev build: $$VERSION" + sed -i "s/version = \"$$BASE_VERSION\"/version = \"$$VERSION\"/" pyproject.toml + fi + uv build - echo "Checking if $$CURRENT is already published..." - INDEX_PAGE=$$(curl -sf "https://git.mosaicstack.dev/api/packages/mosaic/pypi/simple/mosaicstack-telemetry/" 2>/dev/null || echo "") - if echo "$$INDEX_PAGE" | grep -q "mosaicstack_telemetry-$$CURRENT"; then - echo "Version $$CURRENT already published, skipping upload" - else - echo "Publishing $$CURRENT..." + + if [ "$$CI_COMMIT_BRANCH" = "develop" ]; then + echo "Publishing dev version $$VERSION..." uv run twine upload \ --repository-url "https://git.mosaicstack.dev/api/packages/mosaic/pypi" \ --username "$$GITEA_USER" \ --password "$$GITEA_TOKEN" \ dist/* - echo "Published mosaicstack-telemetry $$CURRENT" + echo "Published mosaicstack-telemetry $$VERSION" + else + echo "Checking if release $$VERSION is already published..." + INDEX_PAGE=$$(curl -sf "https://git.mosaicstack.dev/api/packages/mosaic/pypi/simple/mosaicstack-telemetry/" 2>/dev/null || echo "") + if echo "$$INDEX_PAGE" | grep -q "mosaicstack_telemetry-$$VERSION"; then + echo "Version $$VERSION already published, skipping upload" + else + echo "Publishing release $$VERSION..." + uv run twine upload \ + --repository-url "https://git.mosaicstack.dev/api/packages/mosaic/pypi" \ + --username "$$GITEA_USER" \ + --password "$$GITEA_TOKEN" \ + dist/* + echo "Published mosaicstack-telemetry $$VERSION" + fi fi when: - branch: [main, develop]