diff --git a/.gitea/workflows/release-from-tag b/.gitea/workflows/release-from-tag new file mode 100644 index 0000000..f403c9e --- /dev/null +++ b/.gitea/workflows/release-from-tag @@ -0,0 +1,74 @@ +name: Build Release ZIP + +on: + push: + tags: + - "v*" + +jobs: + release: + runs-on: debian-12 + + steps: + - name: Tools installieren + run: | + apt-get update + apt-get install -y git zip curl jq rsync + + - name: Repo klonen + run: | + rm -rf /tmp/repo /tmp/build + git clone http://oauth2:${{ secrets.PAT_TOKEN }}@10.10.2.140:3000/Torsten/HailMaryGuildTools.git /tmp/repo + + - name: ZIP mit Addon-Ordner bauen + run: | + set -e + mkdir -p /tmp/build/HailMaryGuildTools + + rsync -a \ + --exclude='.git' \ + --exclude='.gitea' \ + /tmp/repo/ /tmp/build/HailMaryGuildTools/ + + cd /tmp/build + zip -r "/tmp/HailMaryGuildTools-${{ gitea.ref_name }}.zip" HailMaryGuildTools + ls -lh "/tmp/HailMaryGuildTools-${{ gitea.ref_name }}.zip" + + - name: Release anlegen oder vorhandene laden + run: | + set -e + TAG="${{ gitea.ref_name }}" + API="http://10.10.2.140:3000/api/v1/repos/Torsten/HailMaryGuildTools" + + HTTP_CODE=$(curl -s -o /tmp/release.json -w "%{http_code}" \ + -H "Authorization: token ${{ secrets.PAT_TOKEN }}" \ + "$API/releases/tags/$TAG") + + if [ "$HTTP_CODE" = "200" ]; then + echo "Release existiert bereits." + else + echo "Release wird erstellt." + curl --fail -s \ + -H "Authorization: token ${{ secrets.PAT_TOKEN }}" \ + -H "Content-Type: application/json" \ + -d "{ + \"tag_name\": \"$TAG\", + \"name\": \"HailMaryGuildTools $TAG\", + \"draft\": false, + \"prerelease\": false + }" \ + "$API/releases" > /tmp/release.json + fi + + jq '.id, .tag_name, .html_url' /tmp/release.json + + - name: ZIP an Release anhängen + run: | + set -e + RELEASE_ID=$(jq -r '.id' /tmp/release.json) + FILE="/tmp/HailMaryGuildTools-${{ gitea.ref_name }}.zip" + + curl --fail \ + -H "Authorization: token ${{ secrets.PAT_TOKEN }}" \ + -F "attachment=@${FILE}" \ + "http://10.10.2.140:3000/api/v1/repos/Torsten/HailMaryGuildTools/releases/${RELEASE_ID}/assets?name=$(basename "$FILE")" \ No newline at end of file