Travis.yml ./gradlew:权限被拒绝
Posted
技术标签:
【中文标题】Travis.yml ./gradlew:权限被拒绝【英文标题】:Travis.yml ./gradlew : Permission denied 【发布时间】:2016-02-22 14:01:02 【问题描述】:使用 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 .
【问题讨论】:
【参考方案1】:这取决于您的 unix gradlew
脚本的 exec-permission。
可以使用以下命令修复:
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 中的权限,而只是改变执行中的权限运行时。
【讨论】:
成功了。在我的情况下,我在“before_script:”中做到了这一点。谢谢! 没有理由不让脚本以正确的权限签入 git(我会选择 1754)。我放弃在构建脚本中添加额外的chmod
命令,因为 1)它增加了不必要的复杂性 2)对重新克隆 repo 的其他团队成员不起作用。【参考方案2】:
script:
- chmod +x ./gradlew build connectedCheck
谢谢大家。
此代码可用。
重点关注chmod +x
【讨论】:
没有像'build'(也许有一个目录)和'connectedCheck'这样的文件,所以这里没有必要。更好地查看接受的答案以上是关于Travis.yml ./gradlew:权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
pypi 包装和秘密:为啥 github--intended .travis.yml 保存密码?
基于 Cocoapods 的 iOS 项目的示例 .travis.yml
markdown travis.yml为Jekyll github页面