From 8693498373ec432cbf4edf77972db9e5ca1d6e34 Mon Sep 17 00:00:00 2001 From: Nicolas Date: Sun, 6 Sep 2026 20:23:48 +0200 Subject: [PATCH] fix(release): remplace softprops/action-gh-release par l'API Forgejo native MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2e vrai declenchement de release.yml (tag v0.2.0, apres le fix du docker manquant sur sanity-build) : forgejo-release echoue en 35s. Log complet : Creating new GitHub release for tag v0.2.0... GitHub release failed with status: 405 (x3, puis "Too many retries. Aborting...") Pas un souci de ref bare comme les autres actions de ce fichier (deja corrige) : la requete de creation de release elle-meme repond 405 cote Forgejo, une vraie incompatibilite d'API entre les deux plateformes sans contournement connu cote configuration de softprops/action-gh-release. Remplace ce step par deux appels directs a l'API REST native de Forgejo (POST /repos/.../releases puis POST .../releases/{id}/assets) avec le GITHUB_TOKEN deja fourni par le runner (permissions: contents: write deja declare en tete de fichier) — evite toute dependance a la compatibilite GitHub-Forgejo d'une action tierce. Pas d'equivalent a generate_release_notes ici (fonctionnalite propre a GitHub, non repliquee par Forgejo) : le corps de la release reste minimal. Co-Authored-By: Claude Sonnet 5 --- .github/workflows/release.yml | 47 +++++++++++++++++++++++++++++------ 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 25ce5e7..0a9e145 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -130,13 +130,46 @@ jobs: with: name: batchcooking.apk - - uses: https://github.com/softprops/action-gh-release@v2 - with: - # Auto-généré depuis les PR mergées depuis le tag précédent — pas - # d'outillage de changelog à maintenir, cohérent avec l'absence - # d'outillage de versioning ailleurs dans le repo pour l'instant. - generate_release_notes: true - files: batchcooking.apk + # softprops/action-gh-release (l'action GitHub habituelle pour ça) + # échoue systématiquement contre ce Forgejo : sa requête de création + # de release répond 405 (vérifié en conditions réelles, tag v0.2.0 — + # pas un souci de ref bare comme les autres actions de ce fichier, + # une vraie incompatibilité d'API entre les deux plateformes qui n'a + # pas de contournement connu côté configuration de l'action). Appelle + # directement l'API native de Forgejo plutôt qu'une action tierce + # dont la compatibilité GitHub-Forgejo n'est pas garantie. + # + # Pas d'équivalent à `generate_release_notes` ici (fonctionnalité + # propre à GitHub, pas répliquée par l'API Forgejo) — le corps de la + # release reste minimal, cohérent avec l'absence d'outillage de + # changelog ailleurs dans le repo. + - name: Crée la Release Forgejo + id: create-release + env: + FORGEJO_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + api="$GITHUB_API_URL/repos/$GITHUB_REPOSITORY/releases" + body="$(printf '{"tag_name":"%s","name":"%s","draft":false,"prerelease":false}' "$GITHUB_REF_NAME" "$GITHUB_REF_NAME")" + resp="$(curl -fsS -X POST "$api" \ + -H "Authorization: token $FORGEJO_TOKEN" \ + -H "Content-Type: application/json" \ + -d "$body")" + id="$(echo "$resp" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2)" + if [ -z "$id" ]; then + echo "Réponse inattendue de l'API Release, pas d'id trouvé : $resp" >&2 + exit 1 + fi + echo "Release $GITHUB_REF_NAME créée (id=$id)" + echo "release-id=$id" >> "$GITHUB_OUTPUT" + + - name: Attache l'APK à la Release + env: + FORGEJO_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + api="$GITHUB_API_URL/repos/$GITHUB_REPOSITORY/releases/${{ steps.create-release.outputs.release-id }}/assets" + curl -fsS -X POST "$api?name=batchcooking.apk" \ + -H "Authorization: token $FORGEJO_TOKEN" \ + -F "attachment=@batchcooking.apk" notify-portainer: runs-on: ubuntu-latest