From 106b884c0367dfc8bad3109ab33042ff77ebd900 Mon Sep 17 00:00:00 2001 From: oqyude Date: Sat, 11 Jul 2026 02:31:48 +0300 Subject: [PATCH] v1? --- .gitea/workflows/release.yml | 63 ++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .gitea/workflows/release.yml diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml new file mode 100644 index 0000000..4374c00 --- /dev/null +++ b/.gitea/workflows/release.yml @@ -0,0 +1,63 @@ +name: Draft Release +on: + push: + branches: [master] +jobs: + draft: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 20 + - run: npm ci + - run: npm run build + - run: zip -j zeroq-qol-modules.zip main.js manifest.json styles.css + - name: Create or update draft release + env: + GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} + run: | + set -e + API="${GITHUB_SERVER_URL}/api/v1/repos/${GITHUB_REPOSITORY}" + TAG="latest-build" + SHA="${GITHUB_SHA}" + + EXISTING=$(curl -s -H "Authorization: token ${GITEA_TOKEN}" \ + "${API}/releases" \ + | jq '.[] | select(.tag_name == "'"${TAG}"'" and .draft == true) | .id') + + if [ -z "$EXISTING" ]; then + echo "Creating new draft release..." + RESP=$(curl -s -X POST -H "Authorization: token ${GITEA_TOKEN}" \ + -H "Content-Type: application/json" \ + -d '{ + "tag_name": "'"${TAG}"'", + "name": "Latest Build from master", + "body": "Автоматическая сборка из ветки `master`.\n\nКоммит: '"${SHA}"'", + "draft": true, + "prerelease": true + }' "${API}/releases") + RELEASE_ID=$(echo "$RESP" | jq -r '.id') + else + echo "Updating existing draft release (id: ${EXISTING})..." + RELEASE_ID=$EXISTING + + curl -s -X PATCH -H "Authorization: token ${GITEA_TOKEN}" \ + -H "Content-Type: application/json" \ + -d '{ + "body": "Автоматическая сборка из ветки `master`.\n\nКоммит: '"${SHA}"'" + }' "${API}/releases/${RELEASE_ID}" + + ASSETS=$(curl -s -H "Authorization: token ${GITEA_TOKEN}" \ + "${API}/releases/${RELEASE_ID}/assets" | jq -r '.[].id') + for AID in $ASSETS; do + curl -s -X DELETE -H "Authorization: token ${GITEA_TOKEN}" \ + "${API}/releases/${RELEASE_ID}/assets/${AID}" + done + fi + + echo "Uploading artifact..." + curl -s -X POST -H "Authorization: token ${GITEA_TOKEN}" \ + -F "attachment=@zeroq-qol-modules.zip" \ + "${API}/releases/${RELEASE_ID}/assets" + echo "Done."