既存の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 .
回答:
UNIX スクリプトへのexec-permissionによって異なり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リポジトリの権限は変更されませんが、実行時の権限ランタイムが変更されるだけです。
chmod
1)不要な複雑さを追加する2)リポジトリを新たに複製する他のチームメンバーには機能しないため、ビルドスクリプトにコマンドを追加することは控えています。