Travis.yml ./gradlew: Izin ditolak

119

Menggunakan Travis CI untuk panggilan proyek Android yang sudah ada

$ ./gradlew build connectedCheck

Saya mendapatkan kesalahan ini:

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

Jawaban:

246

Itu tergantung oleh izin-exec ke gradlewskrip unix Anda .

Itu bisa diperbaiki menggunakan perintah:

git update-index --chmod=+x gradlew

Sedikit gambaran untuk memahami masalahnya.
Pertama-tama Anda dapat memeriksa izin Anda menggunakan:

git ls-tree HEAD

Kamu akan lihat:

100644 blob xxxxxxxxxxx gradlew

Seperti yang Anda lihat, file tersebut memiliki izin 644.

Perbaiki dengan menyetel bendera yang dapat dieksekusi pada file gradlew Anda mengubahnya menjadi 755:

git update-index --chmod=+x gradlew

Cukup komit dan dorong perubahan:

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

Pemeriksaan terakhir menjalankan git ls-tree lagi untuk melihat perubahannya:

git ls-tree HEAD

Anda dapat melihat:

100755 blob xxxxxxxxxxxxx   gradlew

Cara lain untuk mengatasi masalah ini adalah dengan menggunakan:

before_install:
 - chmod +x gradlew

Solusi semacam ini tidak mengubah izin di repo git Anda, tetapi hanya mengubah waktu proses izin dalam eksekusi.

Gabriele Mariotti
sumber
2
Berhasil. Saya melakukan itu di 'before_script:' dalam kasus saya. Terima kasih!
Sudarshan Tanuku
1
Tidak ada alasan untuk tidak memeriksa skrip ke git dengan izin yang tepat (saya akan memilih 1754). Saya tidak menambahkan chmodperintah tambahan dalam skrip build karena 1) menambahkan kerumitan yang tidak perlu 2) tidak akan berfungsi untuk anggota tim lain yang mengkloning repo lagi.
Alex
Terima kasih. Itu membantu saya.
Dimitri de Jesus
4
script:
 - chmod +x ./gradlew build connectedCheck

Terima kasih semuanya. Kode ini tersedia. Fokus utamanya ada padachmod +x

Allen.Cai
sumber