如何在 gitignore 中对某些文件使用 Travis CI?
How to use Travis CI with some files in 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,我们必须在 repo 中包含所有必要的文件?或者有解决方法吗? 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 将能够在 CI 运行 期间解密文件,只要您将正确的命令添加到 .travis.yml
文件,比如在 before_install
步骤中。详细说明在文件加密页面上。
我在 .travis.yml 中做了一个小把戏
在提交之后和 Travis 构建之前,像这样创建被忽略的文件:
before_install:
- cp .ignored.file.copy ignored.file
这样,即使没有实际的 gitignore-ed 文件,构建也会成功。
我有一个 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,我们必须在 repo 中包含所有必要的文件?或者有解决方法吗? 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 将能够在 CI 运行 期间解密文件,只要您将正确的命令添加到 .travis.yml
文件,比如在 before_install
步骤中。详细说明在文件加密页面上。
我在 .travis.yml 中做了一个小把戏 在提交之后和 Travis 构建之前,像这样创建被忽略的文件:
before_install:
- cp .ignored.file.copy ignored.file
这样,即使没有实际的 gitignore-ed 文件,构建也会成功。