diff --git a/.bumpversion.toml b/.bumpversion.toml index 2ff89ab..e4b6628 100644 --- a/.bumpversion.toml +++ b/.bumpversion.toml @@ -8,7 +8,7 @@ regex = false allow_dirty = false commit = true tag = false -message = "chore: bump version {current_version} -> {new_version} [skip ci]" +message = "chore: bump version {current_version} -> {new_version}" pre_commit_hooks = ["uv lock", "git add uv.lock"] [[tool.bumpversion.files]] diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 1f62d7c..34b4d17 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -2,10 +2,9 @@ name: CI "on": push: - branches: ["**"] + branches: ["master"] tags: ["**"] pull_request: - branches: [master] env: UV_CACHE_DIR: /uv-cache @@ -156,7 +155,7 @@ jobs: uv run git-cliff --tag "$TAG" --unreleased --prepend CHANGELOG.md git add CHANGELOG.md if ! git diff --cached --quiet -- CHANGELOG.md; then - git commit -m "chore: update changelog for $TAG [skip ci]" + git commit -m "chore: update changelog for $TAG" else git restore --staged CHANGELOG.md fi @@ -193,7 +192,7 @@ jobs: git config user.name "gitea-actions" git config user.email "actions@git.larsbogner.de" git add pyproject.toml uv.lock - git commit -m "chore: sync project version to tag ${GITHUB_REF_NAME} [skip ci]" + git commit -m "chore: sync project version to tag ${GITHUB_REF_NAME}" git push origin HEAD:master git push origin ":refs/tags/${GITHUB_REF_NAME}" git tag -f "${GITHUB_REF_NAME}" HEAD @@ -201,3 +200,33 @@ jobs: else echo "Tag version matches project version ($CURRENT_VERSION)" fi + + publish-package: + name: Publish package to Gitea package registry + needs: [ruff-check, ruff-format, type-check, test, sync-version-on-tag] + if: startsWith(github.ref, 'refs/tags/') + runs-on: ubuntu-latest + container: + image: docker.gitea.com/runner-images:ubuntu-latest + volumes: + - /srv/act-runner-cache/uv:/uv-cache + steps: + # Check out by tag name (not the triggering SHA) since sync-version-on-tag + # may have force-moved the tag to a version-corrected commit. + - uses: actions/checkout@v4 + with: + ref: ${{ github.ref_name }} + - uses: astral-sh/setup-uv@v5 + with: + enable-cache: false + - run: | + echo "UV_CACHE_DIR=/uv-cache" >> "$GITHUB_ENV" + echo "UV_LINK_MODE=copy" >> "$GITHUB_ENV" + - run: uv build + # CI_TOKEN needs write:package scope (in addition to write:repository, + # used elsewhere) for this upload to authenticate. + - run: | + uv publish \ + --publish-url "https://git.larsbogner.de/api/packages/lars/pypi" \ + --username gitea-actions \ + --password "${{ secrets.CI_TOKEN }}" diff --git a/cliff.toml b/cliff.toml index bca7fc8..7207e63 100644 --- a/cliff.toml +++ b/cliff.toml @@ -37,7 +37,7 @@ commit_preprocessors = [ protect_breaking_commits = false commit_parsers = [ { message = "^Merge ", skip = true }, - { message = "\\[skip ci\\]", skip = true }, + { message = "^chore: (bump version|update changelog|sync project version)", skip = true }, { message = "^Add", group = "Added" }, { message = "^(Fix|Clamp|Clip)", group = "Fixed" }, { message = "^(Remove|Drop|Deprecate)", group = "Removed" },