Travis CI - 以 sudo 运行部署步骤(PyPI)?
Posted
技术标签:
【中文标题】Travis CI - 以 sudo 运行部署步骤(PyPI)?【英文标题】:Travis CI - Run deploy step (PyPI) as sudo? 【发布时间】:2016-08-03 18:44:52 【问题描述】:我有一个使用 tox 的 Python 项目。一些单元测试需要 sudo,所以 .travis.yml 有
script:
- sudo tox
但是,这会使 egg-info 文件和其他文件归 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 身份运行部署步骤,或者以其他方式解决此问题?
【问题讨论】:
试试sudo -E
或-H
或两者兼而有之
【参考方案1】:
不确定tox
本身是否可以应用一些智能,但您可以使用以下几行的脚本开始您的deploy
阶段:
- sudo chown --changes --recursive $(whoami):$(id --group $(whoami)) .
这会将当前目录中的所有文件设置为当前用户,以及当前用户的主组。
【讨论】:
以上是关于Travis CI - 以 sudo 运行部署步骤(PyPI)?的主要内容,如果未能解决你的问题,请参考以下文章
Swift 测试在本地通过,但在 Travis-CI 上构建失败