如何在gitignore中使用Travis CI和一些文件?

时间:2016-10-25 22:44:37

标签: python flask travis-ci gitignore

我有一个Flask应用程序,其配置名为settings.py。我已将此文件放在.gitignore中,因为该项目是在公共回购中。 Travis-CI在我将测试添加到我的项目之前工作,即使settings.py在.gitignore中。将测试添加到项目后,构建开始失败,并显示以下输出:

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,我们必须在repo中包含所有必需的文件?或者有解决方法吗?可以找到GitHub上的回购here

2 个答案:

答案 0 :(得分:1)

@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运行期间解密文件。详细说明在文件加密页面上。

答案 1 :(得分:0)

我在.travis.yml中做了一个技巧 在提交之后和Travis构建之前,创建一个被忽略的文件,如下所示:

before_install:
- cp .ignored.file.copy ignored.file

这样,构建将在没有实际gitignore-ed文件的情况下成功。