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)?的主要内容,如果未能解决你的问题,请参考以下文章

Travis-Ci 的 pypi 部署如何安全?

Swift 测试在本地通过,但在 Travis-CI 上构建失败

如何在 travis 部署脚本中运行 aws configure?

成功后部署 pypi travis ci

使用Travis-CI自动化部署Hexo博客

使用 Travis-ci 在 pypi 上部署包失败,没有任何错误消息