python - 如何将 Travis CI 与 gitignore 中的某些文件一起使用?

标签 python flask travis-ci gitignore

我有一个 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/

相关文章:

python pandas timedelta 特定行

python - 将 lxml.objectify 的元素转回 XML

python - 如何记录鸭子类型(duck typing)?

python - 使用 GraphQL 和 Graphene-Python 从数据库中选择仅请求的字段

Python:迭代一组符号

python - 我似乎无法让我的 flask 应用程序显示我的表单-flask_wtf

Flask Swagger 文档查询参数需要 GET

python - 如何按顺序测试具有多个python版本的项目?

c - Travis CI 使用非 perl 语言安装 perl 模块

ruby-on-rails - Travis CI "ActiveRecord::NoDatabaseError: FATAL: database "jobTrak_test“不存在”