fix(capacitor-android): ./gradlew: Permission denied sul runner Linux #6

Closed
opened 2026-08-27 16:47:23 +00:00 by LucaZanni · 0 comments
Owner

Sintomo

Le build Android dei progetti Capacitor falliscono con:

./gradlew: Permission denied

Il problema si ripresenta con frequenza su repo diversi, non su uno solo.

Causa

android/gradlew viene committato con mode 100644 (non eseguibile) da chi lavora su Windows: con core.filemode=false git non rileva il bit di esecuzione, quindi il file entra nell'indice senza +x. Il checkout sul runner Linux riproduce fedelmente quel mode e l'invocazione ./gradlew fallisce.

Non e' un difetto del singolo repo: ogni progetto Capacitor creato o ri-committato da Windows nasce cosi'. Correggerlo repo per repo significa rincorrerlo all'infinito.

Rimedio

Step chmod +x android/gradlew in capacitor-android.yml e capacitor-android-github.yml, inserito fra "Setup release keystore" e "Build Android (APK)" cosi' da coprire sia il percorso APK (assembleDebug/assembleRelease) sia quello AAB (bundleRelease).

Nota sul rilascio

I repo consumano i workflow con @v1. Il fix diventa effettivo solo dopo lo spostamento del tag v1 sul commit correttivo.

## Sintomo Le build Android dei progetti Capacitor falliscono con: ``` ./gradlew: Permission denied ``` Il problema si ripresenta con frequenza su repo diversi, non su uno solo. ## Causa `android/gradlew` viene committato con mode `100644` (non eseguibile) da chi lavora su Windows: con `core.filemode=false` git non rileva il bit di esecuzione, quindi il file entra nell'indice senza `+x`. Il checkout sul runner Linux riproduce fedelmente quel mode e l'invocazione `./gradlew` fallisce. Non e' un difetto del singolo repo: ogni progetto Capacitor creato o ri-committato da Windows nasce cosi'. Correggerlo repo per repo significa rincorrerlo all'infinito. ## Rimedio Step `chmod +x android/gradlew` in `capacitor-android.yml` e `capacitor-android-github.yml`, inserito fra "Setup release keystore" e "Build Android (APK)" cosi' da coprire sia il percorso APK (`assembleDebug`/`assembleRelease`) sia quello AAB (`bundleRelease`). ## Nota sul rilascio I repo consumano i workflow con `@v1`. Il fix diventa effettivo solo dopo lo spostamento del tag `v1` sul commit correttivo.
LucaZanni added spent time 1 hour 30 minutes 2026-08-27 16:47:37 +00:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Total Time Spent: 1 hour 30 minutes
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: devops/shared-actions#6