等待阶段之间的自定义时间
Waiting custom time between stages
我希望“验证”阶段不开始 运行 在“测试”阶段完成后,我希望“验证”阶段开始 运行 X 分钟后“测试”完成。
stages:
- configure-site
- test
- verify
您可以在“测试”和“验证”阶段之间添加一个新阶段。该阶段可以简单地以秒为单位执行给定时间的“睡眠”命令。
否则,您可以将睡眠命令添加到“测试”作业的末尾。
请注意,默认情况下作业不能 运行 超过 60 分钟 (docs)。
stages:
- configure-site
- test
- wait
- verify
configure-site:
stage: configure-site
...
test:
stage: test
needs:
- "configure-site"
...
wait:
stage: wait
needs:
- "test"
script:
- sleep 600
verify:
stage: verify
needs:
- "wait"
...
但是,正如对您问题的评论已经指出的那样,我倾向于修改您的工作流程以在发布完成时提醒 CI,而不是仅仅等待指定的时间。我认为,“测试”工作应该自动等待,直到一切都真正完成,而不是开始一些过程并在不知道过程是否真的成功的情况下返回某种成功。
否则,也许您可以使用外部状态检查来确保您的发布作业在测试后执行。您的外部作业可以在流程完成时调用 API (Gitlab collective article)。
我希望“验证”阶段不开始 运行 在“测试”阶段完成后,我希望“验证”阶段开始 运行 X 分钟后“测试”完成。
stages:
- configure-site
- test
- verify
您可以在“测试”和“验证”阶段之间添加一个新阶段。该阶段可以简单地以秒为单位执行给定时间的“睡眠”命令。
否则,您可以将睡眠命令添加到“测试”作业的末尾。
请注意,默认情况下作业不能 运行 超过 60 分钟 (docs)。
stages:
- configure-site
- test
- wait
- verify
configure-site:
stage: configure-site
...
test:
stage: test
needs:
- "configure-site"
...
wait:
stage: wait
needs:
- "test"
script:
- sleep 600
verify:
stage: verify
needs:
- "wait"
...
但是,正如对您问题的评论已经指出的那样,我倾向于修改您的工作流程以在发布完成时提醒 CI,而不是仅仅等待指定的时间。我认为,“测试”工作应该自动等待,直到一切都真正完成,而不是开始一些过程并在不知道过程是否真的成功的情况下返回某种成功。
否则,也许您可以使用外部状态检查来确保您的发布作业在测试后执行。您的外部作业可以在流程完成时调用 API (Gitlab collective article)。