diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 8dc0821..888765b 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -43,22 +43,16 @@ jobs: GOOS=linux GOARCH=amd64 go build -o ../wgrplane-linux-amd64 . GOOS=linux GOARCH=arm64 go build -o ../wgrplane-linux-arm64 . - - name: Install dependencies - run: | - command -v jq >/dev/null 2>&1 || apt-get update -qq && apt-get install -y -qq jq >/dev/null 2>&1 - - name: Generate latest.json run: | VERSION="${{ gitea.ref_name }}" RELEASE_DATE="$(date -u +'%Y-%m-%dT%H:%M:%SZ')" - CHANGELOG="$(git log --oneline --no-merges $(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo 'HEAD~10')..HEAD 2>/dev/null || git log --oneline --no-merges -10)" REPO="${{ gitea.repository }}" SERVER="${{ gitea.server_url }}" cat > latest.json << ENDJSON { "version": "$VERSION", "release_date": "$RELEASE_DATE", - "changelog": $(echo "$CHANGELOG" | jq -R -s '.'), "download_urls": { "amd64": "${SERVER}/${REPO}/releases/download/${VERSION}/wgrplane-linux-amd64", "arm64": "${SERVER}/${REPO}/releases/download/${VERSION}/wgrplane-linux-arm64" @@ -66,20 +60,37 @@ jobs: } ENDJSON - - name: Create Release - uses: akkuman/gitea-release-action@v1 - with: - server_url: ${{ gitea.server_url }} - token: ${{ secrets.TOKEN_BUILD }} - tag_name: ${{ gitea.ref_name }} - name: ${{ gitea.ref_name }} - files: |- - wgrplane-linux-amd64 - wgrplane-linux-arm64 - latest.json - env: - GITHUB_TOKEN: ${{ secrets.TOKEN_BUILD }} - GITEA_TOKEN: ${{ secrets.TOKEN_BUILD }} + - name: Create Release and upload assets + run: | + TOKEN="${{ secrets.TOKEN_BUILD }}" + API="${{ gitea.server_url }}/api/v1" + REPO="${{ gitea.repository }}" + TAG="${{ gitea.ref_name }}" + + RELEASE_RESP=$(curl -s -X POST \ + -H "Authorization: token $TOKEN" \ + -H "Content-Type: application/json" \ + -d "{\"tag_name\":\"$TAG\",\"name\":\"$TAG\",\"body\":\"Release $TAG\",\"draft\":false,\"prerelease\":false}" \ + "$API/repos/$REPO/releases") + echo "Release response: $RELEASE_RESP" + + RELEASE_ID=$(echo "$RELEASE_RESP" | grep -o '"id":[0-9]*' | head -1 | grep -o '[0-9]*') + echo "Release ID: $RELEASE_ID" + + if [ -z "$RELEASE_ID" ]; then + echo "Failed to create release" + exit 1 + fi + + for FILE in wgrplane-linux-amd64 wgrplane-linux-arm64 latest.json; do + echo "Uploading $FILE..." + curl -s -X POST \ + -H "Authorization: token $TOKEN" \ + -H "Content-Type: application/octet-stream" \ + --data-binary @"$FILE" \ + "$API/repos/$REPO/releases/$RELEASE_ID/assets?name=$FILE" + echo "" + done - name: Cleanup build artifacts if: always()