在.gitlab-ci.yml
中有3个阶段-构建、测试和部署。
每夜回归测试阶段需要在每夜运行。
下面是相关的.gitlab-ci.yml
代码:
stages:
- build
- test
- deploy
build_project:
stage: build
script:
- cd ./some-dir
- build-script.sh
except:
- tags
#Run this only when say variable 'NIGHTLY_TEST == True'. But HOW?
nightly_regression_test_project:
stage: test
script:
- cd ./some-dir
- execute test-script
每天标记为只运行test
阶段并不可取。
还有别的主意吗?
5条答案
按热度按时间kx1ctssn1#
except
和only
可以指定触发它们的变量。您可以在
.gitlab-ci.yml
中使用以下命令:uqjltbpv2#
目前还没有一种方法可以根据环境变量来运行作业(你可以随时打开一个功能请求!)。但是,如果环境变量不存在,你可以使用一个简单的Bash命令立即退出。
比如:
如果变量不存在,那么它后面的测试就不会运行,否则它们会运行。
希望能有所帮助!
ekqde3dh3#
如果现在有人在寻找这个功能,gitlab现在已经实现了一个带有变量覆盖的计划构建功能(非常方便)。文档找到here。
对于任何对这个功能的说明感兴趣的人,当这个答案给出时,这里是:
使用管道计划
要计划管线,请执行以下操作:
1.导航到您项目的【管道】-【计划】,点击【新建计划】按钮。
1.填写表格
1.点击【保存流水线计划】,更改生效。
我最喜欢的特性是计划管道变量。
变量文档可以在here中找到,但对我来说最有用的信息是优先级,我将在这里重新输入:
变量优先级
这些变量可以被覆盖,并且它们按以下顺序优先于彼此:
1.触发器变量或计划管道变量(优先于所有变量)
1.项目级机密变量或受保护机密变量
1.组级机密变量或受保护机密变量
1.部署变量
1.预定义变量(是链中的最低层)
希望这能有所帮助。我很高兴他们添加了这个功能。
f3temu5u4#
在项目左侧框中选择CI/CD -〉Schedules:
创建新计划:
添加
NIGHTLY_TEST
变量并将其设置为True
:将
only
和variables
部分添加到gitlab-ci.yml
文件中:-- UPDATE-使用新的基于规则的逻辑,你可以这样做:
mmvthczy5#
我只是通过以下示例实现了这个“特性”:使用crontab和curl(我使用Linux,为什么不呢?)来触发运行夜间测试的触发器。