diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index a30dfce..d4468f1 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -34,67 +34,47 @@ jobs: - name: Test run: v test . - - name: Verify version - run: | - ./build/ntfy-bridge-linux-x86_64 --version - ./build/ntfy-bridge-linux-x86_64 --help - - name: Upload artifacts uses: actions/upload-artifact@v4 with: - name: ntfy-bridge-binaires - path: | - build/ntfy-bridge-linux-x86_64 - build/ntfy-bridge-linux-arm64 - build/ntfy-bridge-windows-x86_64.exe + name: binaires + path: build/* - release: - runs-on: ubuntu-latest - if: startsWith(github.ref, 'refs/tags/v') - needs: build - steps: - - name: Download artifacts - uses: actions/download-artifact@v4 - with: - name: ntfy-bridge-binaires - path: build - - - name: Publish Gitea Release + - name: Publish Release (tags only) + if: startsWith(github.ref, 'refs/tags/v') run: | VERSION=${GITHUB_REF#refs/tags/} + API="${GITHUB_SERVER_URL}/api/v1/repos/${GITHUB_REPOSITORY}" echo "==> Creating release ${VERSION}..." - chmod +x build/* 2>/dev/null || true # Supprimer release existante (idempotent) - EXISTING=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ - "${GITHUB_SERVER_URL}/api/v1/repos/${GITHUB_REPOSITORY}/releases/tags/${VERSION}") + EXISTING=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" "${API}/releases/tags/${VERSION}") EXISTING_ID=$(echo "$EXISTING" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2) if [ -n "$EXISTING_ID" ]; then echo " Deleting existing release #${EXISTING_ID}..." - curl -s -f -X DELETE \ - -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ - "${GITHUB_SERVER_URL}/api/v1/repos/${GITHUB_REPOSITORY}/releases/${EXISTING_ID}" + curl -sf -X DELETE -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" "${API}/releases/${EXISTING_ID}" fi # Creer la release - RELEASE_RESP=$(curl -s -f -X POST \ + BODY="## ntfy-bridge ${VERSION}\n\nBinaires statiques — zero dependance.\n\n### Linux\n- \`ntfy-bridge-linux-x86_64\` (x86_64)\n- \`ntfy-bridge-linux-arm64\` (Raspberry Pi)\n\n### Windows\n- \`ntfy-bridge-windows-x86_64.exe\`" + RESP=$(curl -sf -X POST \ -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ -H "Content-Type: application/json" \ - -d "{\"tag_name\":\"${VERSION}\",\"name\":\"${VERSION}\",\"body\":\"## ntfy-bridge ${VERSION}\n\nBinaires statiques — zero dependance.\n\n### Linux\n- \`ntfy-bridge-linux-x86_64\` (x86_64)\n- \`ntfy-bridge-linux-arm64\` (Raspberry Pi)\n\n### Windows\n- \`ntfy-bridge-windows-x86_64.exe\`\n\n### Installation\n\`\`\`bash\nchmod +x ntfy-bridge-linux-x86_64\nsudo mv ntfy-bridge-linux-x86_64 /usr/local/bin/ntfy-bridge\nntfy-bridge --install-service\n\`\`\`\",\"draft\":false,\"prerelease\":false}" \ - "${GITHUB_SERVER_URL}/api/v1/repos/${GITHUB_REPOSITORY}/releases") - RELEASE_ID=$(echo "$RELEASE_RESP" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2) + -d "{\"tag_name\":\"${VERSION}\",\"name\":\"${VERSION}\",\"body\":\"${BODY}\",\"draft\":false,\"prerelease\":false}" \ + "${API}/releases") + RELEASE_ID=$(echo "$RESP" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2) echo "Release ID: ${RELEASE_ID}" - # Uploader les binaires + # Uploader chaque binaire for FILE in build/ntfy-bridge-*; do [ -f "$FILE" ] || continue FNAME=$(basename "$FILE") echo " Uploading ${FNAME}..." - curl -s -f -X POST \ + curl -sf -X POST \ -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ -H "Content-Type: application/octet-stream" \ --data-binary "@${FILE}" \ - "${GITHUB_SERVER_URL}/api/v1/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=${FNAME}" + "${API}/releases/${RELEASE_ID}/assets?name=${FNAME}" done echo "==> Release ${VERSION} complete!"