ci(github): add GitHub Actions CI and release workflows for k3nnyfr/releaser mirror
ci / vet, staticcheck, test, build (push) Canceled after 0s
docs / Build and deploy docs (push) Canceled after 0s

- .github/workflows/ci.yml: same vet/staticcheck/test/build checks as Gitea CI
- .github/workflows/release.yml: same five binaries and build flags as the
  Gitea release workflow, published with gh release create
- docs: mention the GitHub mirror and both release pages; GitHub Actions
  example downloads from GitHub releases using RUNNER_OS/RUNNER_ARCH
- docs: fix broken latest/download URL, clone URL and Go version requirement

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-24 22:38:17 +02:00
co-authored by Claude Opus 5.5
parent 37db8e97ca
commit e28434a030
7 changed files with 166 additions and 12 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ title: releaser
**CI-friendly release automation for GitFlow workflows using Conventional Commits.**
[Source code](https://git.k3nny.fr/k3nny/releaser) · [Releases](https://git.k3nny.fr/k3nny/releaser/releases)
[Source code](https://git.k3nny.fr/k3nny/releaser) · [Releases](https://git.k3nny.fr/k3nny/releaser/releases) · [GitHub mirror](https://github.com/k3nnyfr/releaser)
Standard tools like `semantic-release` are designed for trunk-based development. In a GitFlow setup with versioned release branches (`release/1.1`, `release/1.2`), they either fail to respect the branch's version range or require brittle configuration.
+27 -5
View File
@@ -80,14 +80,36 @@ jobs:
with:
fetch-depth: 0 # full history needed for tag discovery
- name: Install releaser
shell: bash
env:
RELEASER_VERSION: v1.10.0
# On Gitea Actions, https://git.k3nny.fr/k3nny/releaser/releases/download works too.
RELEASER_BASE_URL: https://github.com/k3nnyfr/releaser/releases/download
run: |
case "$RUNNER_OS" in
Linux) os=linux ;;
macOS) os=darwin ;;
Windows) os=windows ;;
*) echo "unsupported RUNNER_OS: $RUNNER_OS" >&2; exit 1 ;;
esac
case "$RUNNER_ARCH" in
X64) arch=amd64 ;;
ARM64) arch=arm64 ;;
*) echo "unsupported RUNNER_ARCH: $RUNNER_ARCH" >&2; exit 1 ;;
esac
ext=""
if [ "$os" = "windows" ]; then ext=".exe"; fi
mkdir -p "$RUNNER_TEMP/releaser"
curl -fsSL "$RELEASER_BASE_URL/$RELEASER_VERSION/releaser-$RELEASER_VERSION-$os-$arch$ext" \
-o "$RUNNER_TEMP/releaser/releaser$ext"
chmod +x "$RUNNER_TEMP/releaser/releaser$ext"
echo "$RUNNER_TEMP/releaser" >> "$GITHUB_PATH"
- name: Run releaser
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
curl -sSL https://git.k3nny.fr/k3nny/releaser/releases/latest/download/releaser-linux-amd64 \
-o /usr/local/bin/releaser
chmod +x /usr/local/bin/releaser
releaser
run: releaser
```
{{< hint warning >}}
+12 -5
View File
@@ -5,16 +5,23 @@ weight: 10
## Pre-built binaries
Download the latest release for your platform from the [Releases page](https://git.k3nny.fr/k3nny/releaser/releases).
Download the latest release for your platform from either forge — both publish identical binaries for every tag:
- [git.k3nny.fr releases](https://git.k3nny.fr/k3nny/releaser/releases) (primary)
- [GitHub releases](https://github.com/k3nnyfr/releaser/releases) (mirror)
```bash
# Linux (amd64)
curl -sSL https://git.k3nny.fr/k3nny/releaser/releases/download/v1.5.0/releaser-v1.5.0-linux-amd64 \
curl -sSL https://git.k3nny.fr/k3nny/releaser/releases/download/v1.10.0/releaser-v1.10.0-linux-amd64 \
-o /usr/local/bin/releaser
chmod +x /usr/local/bin/releaser
# Same binary from the GitHub mirror
curl -sSL https://github.com/k3nnyfr/releaser/releases/download/v1.10.0/releaser-v1.10.0-linux-amd64 \
-o /usr/local/bin/releaser
```
Available platforms: `linux-amd64`, `linux-arm64`, `darwin-amd64`, `darwin-arm64`, `windows-amd64.exe`.
Available platforms: `linux-amd64`, `linux-arm64`, `darwin-amd64`, `darwin-arm64`, `windows-amd64.exe`. Asset names embed the tag (`releaser-<tag>-<os>-<arch>`), so download URLs must name an explicit version.
## Docker
@@ -30,10 +37,10 @@ docker run --rm \
## Build from source
Requires Go 1.21+.
Requires the Go version declared in `go.mod` (1.26+).
```bash
git clone https://git.k3nny.fr/k3nny/releaser/releaser.git
git clone https://git.k3nny.fr/k3nny/releaser.git # or https://github.com/k3nnyfr/releaser.git
cd releaser
go build -o /usr/local/bin/releaser ./cmd
```