Fully automated version management and package publishing (in a container image)
  • Dockerfile 100%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
b4mad-release-bot 50c3e84be1
chore(release): 1.6.0 [skip ci]
## [1.6.0](https://codeberg.org/b4mad/semantic-release/compare/v1.5.3...v1.6.0) (2026-04-19)

###  Features

* add uv, pre-commit, and @semantic-release/exec ([fed3382](fed33825e8))

### 🔁 Chore

* correct license label to SPDX identifier GPL-3.0-or-later ([e24cd50](e24cd507d4))
* update Fedora base-image ([0ef1e9b](0ef1e9b38f))
2026-04-19 10:05:07 +00:00
.tekton build: add a 'build-test' pipeline triggered on each PR 2025-03-09 11:18:50 +01:00
.containerignore build: reorganize the pipelines: test on main, release on tag. now for real! 2025-02-25 19:59:37 +01:00
.releaserc fix: commit CHANGELOG to release commit 2025-02-22 13:27:13 +01:00
CHANGELOG.md chore(release): 1.6.0 [skip ci] 2026-04-19 10:05:07 +00:00
Containerfile feat: add uv, pre-commit, and @semantic-release/exec 2026-04-19 12:04:21 +02:00
LICENSE feat: add Containerfile so that we can build a container image 2025-02-18 23:55:59 +01:00
OWNERS OWNERS hinzugefügt 2025-02-22 21:56:57 +00:00
README.md docs: update the README 2025-04-15 14:07:50 +02:00

semantic-release

This is a containerized version of the semantic-release tool. Hopefully it will be maintained and released by the cyborgs!

podman run --rm -ti --userns=keep-id:uid=1001,gid=0 \
  -e NPM_TOKEN=npm_xxx -eEDITOR="echo 'Created-by: semantic-release' > $1" \
  -v $(pwd):/workspace:Z -v <path-to-gpg-home-dir>:/opt/app-root/src/.gnupg:Z -v <path-to-home-dot-ssh>:/opt/app-root/src/.ssh:Z \
  codeberg.org/b4mad/semantic-release:v1.4.2 --debug --no-ci

https://github.com/semantic-release/semantic-release/issues/3065 was helpful wrt gpg-signed tags.

Configuration

GnuPG

[https://github.com/isislovecruft/python-gnupg/issues/137#issuecomment-459043779] was a helpful hint, as parts of the magic is configured in the ~/.gnupg/gpg.conf file.

$ cat ~/.gnupg/gpg.conf
no-greeting
pinentry-mode loopback
[...]

Environment Variables

GIT_AUTHOR_NAME="b4mad-release-bot"
GIT_AUTHOR_EMAIL="release-bot@b4mad.net"
GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"
GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"

Git

Within the container we have to configure /workspace/ to be a safe directory for git operations, so the Containerfile contains the following lines:

RUN git config --global --add safe.directory /workspace