Travis.yml./gradlew: Permiso denegado


Usando Travis CI para un proyecto Android existente llamando a

$ ./gradlew build connectedCheck

Obtengo este error:

/home/travis/build.sh: line 45: ./gradlew: Permission denied
The command "./gradlew build connectedCheck" failed and exited with 126 during .
Author: Sid, 2015-11-20

2 answers

Depende del exec-permission de su script unix gradlew.

Se puede arreglar usando el comando:

git update-index --chmod=+x gradlew

Un poco de descripción para entender el problema.
En primer lugar, puede verificar sus permisos utilizando:

git ls-tree HEAD

Verás:

100644 blob xxxxxxxxxxx gradlew

Como puede ver, el archivo tiene el permiso 644.

Arreglarlo estableciendo la bandera ejecutable en su archivo gradlew cambiándolo a 755:

git update-index --chmod=+x gradlew

Just commit y empuje 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 de nuevo 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 tu repositorio git, sino que solo cambia el tiempo de ejecución del permiso en la ejecución.

 191
Author: Gabriele Mariotti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-26 16:02:52
script:
 - chmod +x ./gradlew build connectedCheck

Gracias a todos. Este código está disponible. El foco principal está en chmod +x

 3
Author: Allen.Cai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-11 06:40:25