Travis.yml/gradlew: अनुमति से इनकार किया


119

किसी मौजूदा Android प्रोजेक्ट कॉलिंग के लिए ट्रैविस CI का उपयोग करना

$ ./gradlew build connectedCheck

मुझे यह त्रुटि मिली:

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

जवाबों:


246

यह आपकी यूनिक्स स्क्रिप्ट के निष्पादन-अनुमति से निर्भर करता है 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 रेपो में अनुमति को नहीं बदलता है, लेकिन निष्पादन में अनुमति रनटाइम को बदलता है।


2
इसने काम कर दिया। मैंने अपने मामले में 'से पहले_स्क्रिप्ट:' किया था। धन्यवाद!
सुदर्शन

1
स्क्रिप्ट को सही अनुमतियों के साथ जांच में शामिल नहीं करने का कोई कारण नहीं है (मैं 1754 में जाऊंगा)। मैं chmodनिर्माण स्क्रिप्ट्स में अतिरिक्त कमांड्स जोड़ने से परहेज करता हूं क्योंकि 1) यह अनावश्यक जटिलता 2 जोड़ता है) अन्य टीम के सदस्यों के लिए काम नहीं करेगा जो रेपो नए सिरे से क्लोन करते हैं।
एलेक्स

धन्यवाद। इसने मेरी मदद की।
दिमित्री डी जीसस

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

सबको शुक्रीया। यह कोड उपलब्ध है। मुख्य फोकस पर हैchmod +x

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.