我有一个使用tox的Python项目。有些单元测试需要sudo,所以.travis.yml有
script:
- sudo tox
但是,这会使egg信息文件和其他文件归root所有。因此,当Travis(作为用户)运行部署步骤时,它会给出以下输出:
Deploying application
running sdist
running egg_info
writing requirements to myproject.egg-info/requires.txt
error: [Errno 13] Permission denied: 'myproject.egg-info/requires.txt'
ValueError: Cannot find file (or expand pattern): 'dist/*'
我如何以root身份运行部署步骤,或者以其他方式解决这个问题?
不确定tox
本身是否可以应用一些智能,但您可以使用以下行的脚本启动deploy
阶段:
- sudo chown --changes --recursive $(whoami):$(id --group $(whoami)) .
这将当前目录中的所有文件设置为当前用户和当前用户的主组。