如何在具有文件系统权限的travis上运行golang测试(如果可能,在sudo之外?)

问题描述 投票:-4回答:1

我正在尝试使用TravisCI构建我的golang cli项目。发现的问题之一是在运行创建文件的测试时,出现权限错误。

enter image description here

但是当尝试使用sudo运行测试时,它更改为sudo: go: command not found

这是travis的错误代码段:

enter image description here

任何人都可以提供解决方案吗?

注意:

  1. 我不想更改测试以在代码中使用sudo,因为稍后使用它时,用户应自行决定是否使用sudo
permissions travis-ci sudo
1个回答
0
投票

回答我自己的问题

根据评论编译,我尝试了2个选项

[首先是使用chmod 777 .更新当前的工作目录权限(是的,我已经全部设置了,不想真正困扰travis的特定行为),但事实证明它不起作用。这次不确定原因,可能是动态生成的二进制文件也有权限问题

对我来说有效的解决方案是读取go二进制路径,然后以sudo的身份重新运行它,如下所示

script: 
  - GO_EXECUTABLE_PATH=$(which go)
  - echo $GO_EXECUTABLE_PATH
  - sudo $GO_EXECUTABLE_PATH test ./...
© www.soinside.com 2019 - 2024. All rights reserved.