在Jenkins构建步骤中使用未管理的文件

时间:2011-09-20 03:24:22

标签: python git build jenkins

我今天刚刚开始使用Jenkins,所以我完全有可能错过了文档中的内容。

我目前让Jenkins设置为从本地Git仓库运行单元测试(通过插件)。我已经正确地设置了环境(至少在看似正常的工作条件下),但是遇到了一个小障碍。

我有一个我从git repo中排除的settings.py文件(它包含我在我的应用程序中使用的几个键)。我不希望将该文件包含到我的git仓库中,因为我在计划完成项目操作系统时(任何使用该项目的人都需要自己的密钥)。我意识到这可能不是最好的这样做的方式,但它是完成的(并且它是一个小的个人项目),所以我不关心它。

问题在于,因为它不受git管理,Jenkins不会接受它。

我希望能够在运行测试之前将这个单个文件从我的源目录复制到Jenkins构建目录。

有办法做到这一点吗?我已经尝试使用copy to slave插件,但似乎我想要的任何文件首先(手动)需要在workspace/userContent中复制或创建。我错过了什么吗?

3 个答案:

答案 0 :(得分:1)

我建议使用一些环境变量,比如MYPROJECT_SETTINGS。因此,当Jenkins运行任务时,您可以覆盖默认路径,以便将Jenkins的设置文件放入其中。

如果您不想手动将设置文件复制到每个构建计算机,另一个选项是使用一些默认的假密钥进行settings.py,您可以将其添加到您的仓库和本地具有真实键的设置文件,它覆盖了一些选项,例如:

# settings.py file
SECRET_KEY = 'fake stuff'

try:
    from settings_local import *
except ImportError:
    pass

答案 1 :(得分:0)

我正在使用Copy Data To Workspace插件,Copy to Slave插件也应该可以工作,但我发现Copy Data To Workspace Plugin更容易使用这个用例。

答案 2 :(得分:0)

为什么不在jenkins中使用“echo my-secret-keys> settings.txt”并调整脚本来读取此文件以便将其添加到报告中?