Files
HailMaryGuildTools_Bridge/.gitea/workflows/tag-from-toc.yml

87 lines
2.5 KiB
YAML

name: Tag from TOC Version
on:
push:
branches:
- main
jobs:
tag:
runs-on: debian-12
steps:
- name: Tools installieren
run: |
set -e
apt-get update
apt-get install -y git grep sed
- name: Variablen setzen
run: |
set -e
echo "REPO=${{ gitea.repository }}" >> "$GITHUB_ENV"
echo "BRANCH=${{ gitea.ref_name }}" >> "$GITHUB_ENV"
echo "SERVER_URL=https://git.local.unique-studios.de" >> "$GITHUB_ENV"
echo "API_BASE=https://git.local.unique-studios.de/api/v1" >> "$GITHUB_ENV"
echo "TAG_PREFIX=v" >> "$GITHUB_ENV"
echo "GIT_USER_NAME=Gitea Actions" >> "$GITHUB_ENV"
echo "GIT_USER_EMAIL=actions@local" >> "$GITHUB_ENV"
- name: Abgeleitete Variablen setzen
run: |
set -e
REPO_NAME="${REPO##*/}"
echo "REPO_NAME=${REPO_NAME}" >> "$GITHUB_ENV"
echo "TOC_FILE=${REPO_NAME}.toc" >> "$GITHUB_ENV"
echo "REPO_URL=https://oauth2:${{ secrets.PAT_TOKEN }}@git.local.unique-studios.de/${REPO}.git" >> "$GITHUB_ENV"
- name: Repo klonen
run: |
set -e
rm -rf /tmp/repo
git clone "${REPO_URL}" /tmp/repo
- name: Version aus TOC lesen
run: |
set -e
cd /tmp/repo
if [ ! -f "$TOC_FILE" ]; then
echo "TOC-Datei nicht gefunden: $TOC_FILE"
exit 1
fi
VERSION=$(grep '^## Version:' "$TOC_FILE" | sed 's/^## Version:[[:space:]]*//')
if [ -z "$VERSION" ]; then
echo "Keine Version in $TOC_FILE gefunden"
exit 1
fi
RELEASE_TAG="${TAG_PREFIX}${VERSION}"
echo "Gefundene Version: $VERSION"
echo "Neues Tag wäre: $RELEASE_TAG"
echo "VERSION=${VERSION}" >> "$GITHUB_ENV"
echo "RELEASE_TAG=${RELEASE_TAG}" >> "$GITHUB_ENV"
- name: Tag nur erstellen, wenn noch nicht vorhanden
run: |
set -e
cd /tmp/repo
git fetch --tags
if git rev-parse "$RELEASE_TAG" >/dev/null 2>&1; then
echo "Tag $RELEASE_TAG existiert bereits, nichts zu tun."
exit 0
fi
git config user.name "$GIT_USER_NAME"
git config user.email "$GIT_USER_EMAIL"
git tag "$RELEASE_TAG"
git push origin "$RELEASE_TAG"