기존 Android 프로젝트 호출에 Travis CI 사용
$ ./gradlew build connectedCheck
이 오류가 발생합니다.
/home/travis/build.sh: line 45: ./gradlew: Permission denied
The command "./gradlew build connectedCheck" failed and exited with 126 during .
기존 Android 프로젝트 호출에 Travis CI 사용
$ ./gradlew build connectedCheck
이 오류가 발생합니다.
/home/travis/build.sh: line 45: ./gradlew: Permission denied
The command "./gradlew build connectedCheck" failed and exited with 126 during .
답변:
유닉스 스크립트 에 대한 exec 권한 에 따라 다릅니다 gradlew
.
다음 명령을 사용하여 수정할 수 있습니다.
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 repo의 권한을 변경하지 않고 실행시 권한 런타임 만 변경합니다.
chmod
1) 불필요한 복잡성을 추가합니다. 2) 리포지토리를 새로 복제하는 다른 팀 구성원에게는 작동하지 않기 때문에 빌드 스크립트에 추가 명령을 추가하지 않습니다.