diff --git a/.gitea/workflows/build-windows-exe.yml b/.gitea/workflows/build-windows-exe.yml index 8e81c64..02df60c 100644 --- a/.gitea/workflows/build-windows-exe.yml +++ b/.gitea/workflows/build-windows-exe.yml @@ -2,6 +2,8 @@ name: build-windows-exe on: push: + tags: + - "v*" jobs: build: @@ -11,7 +13,7 @@ jobs: - name: Checkout shell: bash run: | - git clone --depth 1 https://git.vrcworldtour.com/every_holiday/VRCWT-OSC.git . + git clone --depth 1 --branch "${GITHUB_REF_NAME}" https://git.vrcworldtour.com/every_holiday/VRCWT-OSC.git . - name: Install Go shell: bash @@ -43,8 +45,32 @@ jobs: cp config/guests.example.txt dist/guests.example.txt (cd dist && zip -r vrc_osc-windows.zip vrc_osc.exe vrwt_tool.exe config.example.toml secrets.example.toml guests.example.txt) - - name: Verify archive + - name: Create Release + env: + GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} + GITEA_BASE_URL: ${{ secrets.GITEA_BASE_URL }} + TAG_NAME: ${{ github.ref_name }} shell: bash run: | - cd VRWT_Tool/VRC_OSC/dist - ls -l vrc_osc-windows.zip + set -euo pipefail + api="${GITEA_BASE_URL:-https://git.vrcworldtour.com}/api/v1" + owner_repo="every_holiday/VRCWT-OSC" + release_json=$(curl -fsSL \ + -H "Authorization: token ${GITEA_TOKEN}" \ + -H "Content-Type: application/json" \ + "${api}/repos/${owner_repo}/releases/tags/${TAG_NAME}" || true) + if [ -n "${release_json}" ]; then + release_id=$(printf '%s' "${release_json}" | python3 -c 'import json,sys; print(json.load(sys.stdin)["id"])') + else + release_json=$(curl -fsSL -X POST \ + -H "Authorization: token ${GITEA_TOKEN}" \ + -H "Content-Type: application/json" \ + -d "{\"tag_name\":\"${TAG_NAME}\",\"name\":\"${TAG_NAME}\",\"draft\":false,\"prerelease\":false}" \ + "${api}/repos/${owner_repo}/releases") + release_id=$(printf '%s' "${release_json}" | python3 -c 'import json,sys; print(json.load(sys.stdin)["id"])') + fi + asset_path="VRWT_Tool/VRC_OSC/dist/vrc_osc-windows.zip" + curl -fsSL -X POST \ + -H "Authorization: token ${GITEA_TOKEN}" \ + -F "attachment=@${asset_path}" \ + "${api}/repos/${owner_repo}/releases/${release_id}/assets?name=vrc_osc-windows.zip"