From a7b81b7db0289d283ccf7a2dfcde6db7bda0c847 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 8 Apr 2026 13:32:09 +0200 Subject: [PATCH] Trying with tag and uploading release --- .gitea/workflows/build.yml | 59 +++++++++++++++++++++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 2567ca3..648aa99 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -19,4 +19,61 @@ jobs: mkdir -p build cd build cmake -DCMAKE_BUILD_TYPE=Release .. - make -j \ No newline at end of file + make -j + - name: Upload release asset to Gitea + if: github.ref_type == 'tag' + shell: bash + env: + GITEA_TOKEN: ${{ secrets.GITEA_RELEASE_TOKEN }} + GITEA_SERVER: ${{ github.server_url }} + REPO: ${{ github.repository }} + TAG: ${{ github.ref_name }} + run: | + set -euo pipefail + + file="build/libdurin-plugin.so" + if [ ! -f "$file" ]; then + echo "Release asset not found: $file" + exit 1 + fi + + api="${GITEA_SERVER}/api/v1/repos/${REPO}" + + release_json="$(curl -fsS \ + -H "Authorization: token ${GITEA_TOKEN}" \ + "${api}/releases/tags/${TAG}" || true)" + + if [ -z "${release_json}" ] || [ "${release_json}" = "null" ]; then + echo "Release for tag ${TAG} does not exist, creating it" + release_json="$(curl -fsS \ + -X POST \ + -H "Authorization: token ${GITEA_TOKEN}" \ + -H "Content-Type: application/json" \ + "${api}/releases" \ + -d "{ + \"tag_name\": \"${TAG}\", + \"name\": \"${TAG}\", + \"draft\": false, + \"prerelease\": false + }")" + else + echo "Release for tag ${TAG} already exists" + fi + + release_id="$(printf '%s' "${release_json}" | sed -n 's/.*"id":[[:space:]]*\([0-9][0-9]*\).*/\1/p' | head -n1)" + + if [ -z "${release_id}" ]; then + echo "Failed to determine release id" + echo "${release_json}" + exit 1 + fi + + asset_name="$(basename "${file}")" + + echo "Uploading ${asset_name} to release ${release_id}" + curl -fsS \ + -X POST \ + -H "Authorization: token ${GITEA_TOKEN}" \ + -F "attachment=@${file}" \ + -F "name=${asset_name}" \ + "${api}/releases/${release_id}/assets" \ No newline at end of file