59 lines
1.7 KiB
YAML
59 lines
1.7 KiB
YAML
name: Make Release
|
||
|
||
on:
|
||
workflow_dispatch:
|
||
inputs:
|
||
version:
|
||
description: 'Release-Version (z.B. 0.3.3 – ohne v-Prefix)'
|
||
required: true
|
||
type: string
|
||
|
||
jobs:
|
||
release:
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- name: Validate version format
|
||
run: |
|
||
VERSION="${{ github.event.inputs.version }}"
|
||
if ! echo "$VERSION" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+$'; then
|
||
echo "::error::Ungültiges Versionsformat: '$VERSION'. Erwartet: X.Y.Z (z.B. 0.3.3)"
|
||
exit 1
|
||
fi
|
||
echo "VERSION=v${VERSION}" >> $GITHUB_ENV
|
||
|
||
- name: Checkout repository
|
||
uses: actions/checkout@v4
|
||
with:
|
||
fetch-depth: 0
|
||
|
||
- name: Create and push tag
|
||
run: |
|
||
git config user.name "Gitea Actions"
|
||
git config user.email "actions@git.techniverse.net"
|
||
if git rev-parse "$VERSION" >/dev/null 2>&1; then
|
||
echo "::error::Tag $VERSION existiert bereits!"
|
||
exit 1
|
||
fi
|
||
git tag -a "$VERSION" -m "Release $VERSION"
|
||
git push origin "$VERSION"
|
||
|
||
- name: Set up Go
|
||
uses: actions/setup-go@v5
|
||
with:
|
||
go-version-file: 'go.mod'
|
||
|
||
- name: Login to Gitea Container Registry
|
||
run: echo "${REGISTRY_TOKEN}" | docker login git.techniverse.net -u "${GITHUB_ACTOR}" --password-stdin
|
||
env:
|
||
REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }}
|
||
|
||
- name: Run GoReleaser
|
||
uses: goreleaser/goreleaser-action@v6
|
||
with:
|
||
distribution: goreleaser
|
||
version: '~> v2'
|
||
args: release --clean
|
||
env:
|
||
GITEA_TOKEN: ${{ secrets.REGISTRY_TOKEN }}
|
||
GORELEASER_FORCE_TOKEN: gitea
|