chore(ci): .drone.yml gitea-release — ${APK} wird von Drone-YAML zu leerem String interpoliert #411

Closed
opened 2026-05-27 21:58:54 +02:00 by pm-bot · 1 comment
Collaborator

Problem

In .drone.yml:490 (gitea-release-Step der publish-apk-Pipeline):

-F "attachment=@${APK}" \

Drone substituiert ${VAR}-Syntax beim YAML-Parsen vor der Shell-Ausführung. APK ist kein Drone-Built-in, also wird ${APK} zu Leerstring. Im Drone-Log von Build #871 sichtbar als:

-F "attachment=@" \

Obwohl direkt darüber echo "APK: $APK" korrekt den Pfad ausgibt ($APK ohne Klammern wird von Drone nicht angefasst).

Symptom

Tag-Build #871 (v0.4.6) ist im gitea-release-Step mit curl: (26) Failed to open/read local data from file/application gestorben. Gitea-Release v0.4.6 wurde erstellt, aber ohne APK-Asset. F-Droid-Scraper und Download-Link auf der Release-Page finden nichts.

Fix

.drone.yml:490: ${APK}$APK (oder $${APK} als Drone-Escape).

-          -F "attachment=@${APK}" \
+          -F "attachment=@$APK" \

Konsistent mit den anderen Variablen-Referenzen im selben Block (alle nutzen $VAR ohne Klammern).

Wer betroffen

Jeder Tag-Cut ab v0.4.6 würde dasselbe Problem zeigen, solange der Bug drin ist. v0.4.5 funktionierte zufällig — das war derselbe Block, aber mit anderem $VAR-Stil (siehe Commit-History von .drone.yml, Issue #406/PR #407).

Stopgap

Für v0.4.6 wird die APK manuell aus /opt/server-stack/hosts/prod-alt/mrrmlabapp/fdroid/repo/ auf das bestehende Release hochgeladen — kein Re-Tag.

Akzeptanzkriterien

  • .drone.yml:490 gefixt
  • Nächster Tag-Cut lädt APK erfolgreich als Release-Asset
  • Optional: Smoke-Schritt vor curl -F der test -s "$APK" macht, damit der Fehler nicht erst auf curl-Ebene knallt
## Problem In `.drone.yml:490` (gitea-release-Step der publish-apk-Pipeline): ```yaml -F "attachment=@${APK}" \ ``` Drone substituiert `${VAR}`-Syntax beim YAML-Parsen *vor* der Shell-Ausführung. `APK` ist kein Drone-Built-in, also wird `${APK}` zu Leerstring. Im Drone-Log von Build #871 sichtbar als: ``` -F "attachment=@" \ ``` Obwohl direkt darüber `echo "APK: $APK"` korrekt den Pfad ausgibt (`$APK` ohne Klammern wird von Drone nicht angefasst). ## Symptom Tag-Build #871 (v0.4.6) ist im `gitea-release`-Step mit `curl: (26) Failed to open/read local data from file/application` gestorben. Gitea-Release `v0.4.6` wurde erstellt, aber **ohne APK-Asset**. F-Droid-Scraper und Download-Link auf der Release-Page finden nichts. ## Fix `.drone.yml:490`: `${APK}` → `$APK` (oder `$${APK}` als Drone-Escape). ```diff - -F "attachment=@${APK}" \ + -F "attachment=@$APK" \ ``` Konsistent mit den anderen Variablen-Referenzen im selben Block (alle nutzen `$VAR` ohne Klammern). ## Wer betroffen Jeder Tag-Cut ab v0.4.6 würde dasselbe Problem zeigen, solange der Bug drin ist. v0.4.5 funktionierte zufällig — das war derselbe Block, aber mit anderem `$VAR`-Stil (siehe Commit-History von `.drone.yml`, Issue #406/PR #407). ## Stopgap Für v0.4.6 wird die APK manuell aus `/opt/server-stack/hosts/prod-alt/mrrmlabapp/fdroid/repo/` auf das bestehende Release hochgeladen — kein Re-Tag. ## Akzeptanzkriterien - [ ] `.drone.yml:490` gefixt - [ ] Nächster Tag-Cut lädt APK erfolgreich als Release-Asset - [ ] Optional: Smoke-Schritt vor `curl -F` der `test -s "$APK"` macht, damit der Fehler nicht erst auf curl-Ebene knallt
Author
Collaborator

GF-Entscheidung: Kein eigener Patch-Release

Per #412 (KW 2026-W22, Punkt b) wird dieser CI-Bug nicht als eigener v0.4.7-Patch ausgeliefert, sondern beim nächsten regulären Feature-Tag-Cut mitgenommen.

Begründung: Kein User-Impact (v0.4.6 ist via Stopgap-APK-Upload vollständig). Patch-Release nur für Engineering-Hygiene erzeugt Cut-Lärm.

Konsequenz: Bis zum nächsten Tag-Cut bleibt für jeden Release der manuelle APK-Upload-Stopgap nötig. Fix selbst ist ein 1-Zeiler (${APK}$APK), kann jederzeit gemerged werden — ohne separates Release.

## GF-Entscheidung: Kein eigener Patch-Release Per #412 (KW 2026-W22, Punkt b) wird dieser CI-Bug **nicht** als eigener v0.4.7-Patch ausgeliefert, sondern beim nächsten regulären Feature-Tag-Cut mitgenommen. **Begründung:** Kein User-Impact (v0.4.6 ist via Stopgap-APK-Upload vollständig). Patch-Release nur für Engineering-Hygiene erzeugt Cut-Lärm. **Konsequenz:** Bis zum nächsten Tag-Cut bleibt für jeden Release der manuelle APK-Upload-Stopgap nötig. Fix selbst ist ein 1-Zeiler (`${APK}` → `$APK`), kann jederzeit gemerged werden — ohne separates Release.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
admin-mrrm/mrrmlabapp#411
No description provided.