我有一个 Flask 应用程序,其配置位于名为 settings.py 的文件中。我已将此文件放入 .gitignore 中,因为该项目位于公共(public)存储库中。尽管 settings.py 位于 .gitignore 中,但在我将测试添加到项目中之前,Travis-CI 就已经开始工作了。将测试添加到项目后,构建开始失败,并显示以下输出:
Debugged import:
- 'settings' not found.
Original exception:
ImportError: No module named 'settings'
我的 .travis.yml 文件如下所示:
language: python
python:
- "3.4"
- "3.5"
# command to install dependencies
install:
- pip install -r requirements.txt
# command to run tests
script: python tests.py
这是否意味着为了使用 travis-ci,我们必须在存储库中包含所有必需的文件?或者有解决方法吗? GitHub 上的存储库可以找到 here .
最佳答案
@dirn 关于使用默认 settings.py
文件然后使用 encrypted environment variables on Travis 覆盖某些设置的评论是个好主意,如果只有几个差异,当然值得。
但是,如果您不介意或者分解设置太复杂,您可以安装 Ruby Travis command line client gem
,它对很多事情都很有用。
通过您计算机上的客户端,您可以使用 Travis' file encryption feature加密整个 settings.py
文件,然后将加密版本(将具有 .enc
文件扩展名)提交到 GitHub。然后,只要您将正确的命令添加到 .travis.yml
文件(例如在 before_install
步骤中),Travis 就能够在 CI 运行期间解密该文件。详细说明位于文件加密页面。
关于python - 如何将 Travis CI 与 gitignore 中的某些文件一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40250937/