在第一次,我想知道是否有可能使一个gitlab CI/CD工作在一段时间内“暂停”。如果超过了这个时间段(以秒/分钟为单位),我希望执行我的任务。
第二次,我希望能在这段“暂缓”期间从事其他工作。
我的申请:
我在运行一个管道CI/CD。在CI/CD管道的末尾,我创建了一个任务来清理我的测试数据。
我希望这个任务被“延迟”,让我执行一些其他的任务,比如质量代码作业。
谢谢你的帮忙!
发布于 2022-05-10 02:48:14
第二次,我希望能在这段“暂缓”期间从事其他工作。
听起来您想要使用管道stages
。
例如,您可以有以下两个阶段:
stages:
- test
- clean-up
它定义管道的执行/进展顺序。正如您所说的,您希望在最后运行测试数据清理作业,因此在clean_up
阶段将其定义为作业是合适的。
由于同一阶段的所有作业都并行运行,如果在同一阶段定义了其他作业,则可以指定时间延迟。
when: delayed
start_in: 30 minutes
关于你的第一个问题:
我想知道是否有可能在一段时间内使一个gitlab CI/CD工作“暂停”。如果超过了这个时间段(以秒/分钟为单位),我希望执行我的任务。
将其组合在一起,您的.gitlab-ci.yml
可能如下所示:
stages:
- test
- clean-up
# code-quality, performance-tests, regression-tests
# are jobs belonging to the same stage "test"
code-quality:
stage: test
script: run_code_quality_tests
performance-tests:
stage: test
script: run_performance_tests
regression-tests:
stage: test
script: run_regression_tests
# this job is defined at the same stage as clean-test-data job;
# it will run in parallel as the clean-test-data job
post-test:
stage: clean-up
script:
- run_something
clean-test-data:
stage: clean-up
script:
- run_clean_up_command
when: delayed
# clean-test-data job will not start to run before this 30 min time has lapsed
start_in: 30 minutes
https://stackoverflow.com/questions/72170530
复制相似问题