Travis.yml ./gradlew: в доступе отказано


119

Использование Travis CI для вызова существующего проекта Android

$ ./gradlew build connectedCheck

Я получаю такую ​​ошибку:

/home/travis/build.sh: line 45: ./gradlew: Permission denied
The command "./gradlew build connectedCheck" failed and exited with 126 during .

Ответы:


246

Это зависит от разрешения exec вашего gradlewскрипта unix .

Это можно исправить с помощью команды:

git update-index --chmod=+x gradlew

Небольшое описание, чтобы разобраться в проблеме.
Прежде всего, вы можете проверить свои разрешения, используя:

git ls-tree HEAD

Ты увидишь:

100644 blob xxxxxxxxxxx gradlew

Как видите, у файла 644 разрешения.

Исправьте это, установив флаг исполняемого файла в вашем файле gradlew, изменив его на 755:

git update-index --chmod=+x gradlew

Просто зафиксируйте и нажмите на изменения:

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

Последняя проверка, снова запустив git ls-tree, чтобы увидеть изменения:

git ls-tree HEAD

Ты можешь видеть:

100755 blob xxxxxxxxxxxxx   gradlew

Другой способ решить эту проблему - использовать:

before_install:
 - chmod +x gradlew

Такое решение не меняет разрешения в вашем репозитории git, а просто изменяет время выполнения разрешений при выполнении.


2
Это сработало. Я сделал это в "before_script:" в моем случае. Спасибо!
Сударшан Тануку

1
Нет причин не регистрировать скрипт в git с соответствующими разрешениями (я бы выбрал 1754). Я воздерживаюсь от добавления дополнительных chmodкоманд в сценарии сборки, потому что 1) это добавляет ненужной сложности 2) не будет работать для других членов команды, которые заново клонируют репо.
Alex

Спасибо. Мне это помогло.
Дмитрий де Хесус,

4
script:
 - chmod +x ./gradlew build connectedCheck

Спасибо всем. Этот код доступен. Основное внимание уделяетсяchmod +x

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.