android - Travis.yml./gradlew: permiso denegado
continuous-integration travis-ci (2)
Usando Travis CI para un proyecto existente de Android llamando
$ ./gradlew build connectedCheck
Me sale este error:
/home/travis/build.sh: line 45: ./gradlew: Permission denied
The command "./gradlew build connectedCheck" failed and exited with 126 during .
Depende del
permiso
de
gradlew
script Unix
gradlew
.
Se puede arreglar con el comando:
git update-index --chmod=+x gradlew
Una pequeña descripción para entender el problema.
En primer lugar, puede verificar sus permisos usando:
git ls-tree HEAD
Ya verás:
100644 blob xxxxxxxxxxx gradlew
Como puede ver, el archivo tiene permiso 644.
Solucione la configuración del indicador ejecutable en su archivo gradlew cambiándolo a 755:
git update-index --chmod=+x gradlew
Solo comprométete y presiona los cambios:
git commit -m "permission access for travis"
[master e80ab1b] gradlew permission access for travis
1 file changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 gradlew
Una última comprobación ejecutando git ls-tree nuevamente para ver el cambio:
git ls-tree HEAD
Puedes ver:
100755 blob xxxxxxxxxxxxx gradlew
Otra forma de resolver este problema es usar:
before_install:
- chmod +x gradlew
Este tipo de solución no cambia el permiso en su repositorio git, sino que solo cambia el tiempo de ejecución del permiso en la ejecución.
script:
- chmod +x ./gradlew build connectedCheck
Gracias a todos.
Este código está disponible
El foco principal está en
chmod +x