From 3401e45cab4ab98b460f6444eab729e8cdc8eea0 Mon Sep 17 00:00:00 2001 From: jbergner Date: Sun, 26 Oct 2025 11:24:09 +0100 Subject: [PATCH] bugfix --- .gitea/workflows/release.yml | 88 ++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 49 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index baeaf83..2b5ab22 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -131,11 +131,9 @@ jobs: PRODUCT: release-agent AGENT_URL: ${{ secrets.AGENT_URL }} AGENT_TOKEN: ${{ secrets.AGENT_TOKEN }} - - # Funktioniert in GitHub und Gitea (Actions) weitgehend gleich: - SERVER_URL: ${{ github.server_url }} # z.B. https://github.com oder https://gitea.example.com - REPOSITORY: ${{ github.repository }} # owner/repo - TAG: ${{ github.ref_name }} # vX.Y.Z + SERVER_URL: ${{ github.server_url }} + REPOSITORY: ${{ github.repository }} + TAG: ${{ github.ref_name }} steps: - name: Download artifacts @@ -147,69 +145,61 @@ jobs: shell: bash run: | set -euo pipefail - if [[ -z "${AGENT_URL:-}" || -z "${AGENT_TOKEN:-}" ]]; then echo "Missing AGENT_URL or AGENT_TOKEN" >&2; exit 1 fi - VERSION="${TAG#v}" # 12.3.1[-rc.1|-beta.1] - MAJOR="${VERSION%%.*}" # 12 - BRANCH="${MAJOR}.x" # 12.x + VERSION="${TAG#v}" + MAJOR="${VERSION%%.*}" + BRANCH="${MAJOR}.x" CHANNEL="stable" [[ "$VERSION" == *"-rc"* ]] && CHANNEL="rc" [[ "$VERSION" == *"-beta"* ]] && CHANNEL="beta" - # Optional: Nightly-Channel bei Non-Tag-Builds (separater Job, siehe unten) RELEASED_AT="$(date -u +"%Y-%m-%dT%H:%M:%SZ")" NOTES_URL="${SERVER_URL}/${REPOSITORY}/releases/tag/${TAG}" publish() { # args: OS ARCH FILE - local OS="$1" ARCH="$2" FILE="$3" - local BIT="64"; case "$ARCH" in 386|armv7) BIT="32";; esac + local OS="$1" ARCH="$2" FILE="$3" + local BIT="64"; case "$ARCH" in 386|armv7) BIT="32";; esac - local FNAME="$(basename "$FILE")" - local URL="${SERVER_URL}/${REPOSITORY}/releases/download/${TAG}/${FNAME}" + local FNAME="$(basename "$FILE")" + local URL="${SERVER_URL}/${REPOSITORY}/releases/download/${TAG}/${FNAME}" - local SHA256 SIZE - SHA256="$(sha256sum "$FILE" | awk '{print $1}')" - SIZE="$(stat -c%s "$FILE")" + local SHA256 SIZE + SHA256="$(sha256sum "$FILE" | awk '{print $1}')" + SIZE="$(stat -c%s "$FILE")" - jq -n \ - --arg product "$PRODUCT" \ - --arg branch "$BRANCH" \ - --arg channel "$CHANNEL" \ - --arg arch "$ARCH" \ - --arg bit "$BIT" \ - --arg os "$OS" \ - --arg version "$VERSION" \ - --arg released_at "$RELEASED_AT" \ - --arg notes "$NOTES_URL" \ - --arg url "$URL" \ - --arg sha256 "$SHA256" \ - --argjson size "$SIZE" \ - '{ - product:$product, - branch:$branch, channel:$channel, arch:$arch, bit:$bit, os:$os, - release:{ - version:$version, released_at:$released_at, notes_url:$notes, - assets:[{url:$url, sha256:$sha256, size_bytes:$size}] - } - }' > payload.json - - curl -fsS -H "Content-Type: application/json" \ - -H "Authorization: Bearer ${AGENT_TOKEN}" \ - -d @payload.json "${AGENT_URL}/v1/publish" - } + jq -n \ + --arg product "$PRODUCT" \ + --arg branch "$BRANCH" \ + --arg channel "$CHANNEL" \ + --arg arch "$ARCH" \ + --arg bit "$BIT" \ + --arg os "$OS" \ + --arg version "$VERSION" \ + --arg released_at "$RELEASED_AT" \ + --arg notes "$NOTES_URL" \ + --arg url "$URL" \ + --arg sha256 "$SHA256" \ + --argjson size "$SIZE" \ + '{ + product:$product, + branch:$branch, channel:$channel, arch:$arch, bit:$bit, os:$os, + release:{ + version:$version, released_at:$released_at, notes_url:$notes, + assets:[{url:$url, sha256:$sha256, size_bytes:$size}] + } + }' > payload.json + curl -fsS -H "Content-Type: application/json" \ + -H "Authorization: Bearer ${AGENT_TOKEN}" \ + -d @payload.json "${AGENT_URL}/v1/publish" + } shopt -s nullglob - - # linux/amd64 for f in dist/**/${PRODUCT}-linux-amd64.tar.gz; do publish linux amd64 "$f"; done - # linux/arm64 for f in dist/**/${PRODUCT}-linux-arm64.tar.gz; do publish linux arm64 "$f"; done - # linux/armv7 for f in dist/**/${PRODUCT}-linux-armv7.tar.gz; do publish linux armv7 "$f"; done - # windows/amd64 - for f in dist/**/${PRODUCT}-windows-amd64.zip; do publish windows amd64 "$f"; done \ No newline at end of file + for f in dist/**/${PRODUCT}-windows-amd64.zip; do publish windows amd64 "$f"; done