如何编写在 Gitlab 作业的 timeout/fail 上运行的代码?
How to write code which runs upon a Gitlab Job's timeout/fail?
有时作业会超时并被终止,从而导致特定资源保持锁定状态。
因此下一个作业立即失败,因为它无法访问某些资源。
有没有办法告诉 GitLab 在 timeout/fail 上 运行 脚本? (这将解锁所有“可能锁定”的资源)
如文档 (https://docs.gitlab.com/ee/ci/yaml/#when) 中所述,您可以在下一阶段创建一个单独的作业,使用 when: on_failure
清理资源。
cleanup_build_job:
stage: cleanup_build
script:
- cleanup build when failed
when: on_failure
要实现这一点,您之前的工作当然需要失败。您可以手动定义每个作业的超时,例如:
build:
script: build.sh
timeout: 10 minutes
on_failure
作业在至少一个早期阶段的作业失败时执行,所以如果你之前有多个作业,你可能需要使用额外的变量来验证清理是否应该运行.
有时作业会超时并被终止,从而导致特定资源保持锁定状态。
因此下一个作业立即失败,因为它无法访问某些资源。
有没有办法告诉 GitLab 在 timeout/fail 上 运行 脚本? (这将解锁所有“可能锁定”的资源)
如文档 (https://docs.gitlab.com/ee/ci/yaml/#when) 中所述,您可以在下一阶段创建一个单独的作业,使用 when: on_failure
清理资源。
cleanup_build_job:
stage: cleanup_build
script:
- cleanup build when failed
when: on_failure
要实现这一点,您之前的工作当然需要失败。您可以手动定义每个作业的超时,例如:
build:
script: build.sh
timeout: 10 minutes
on_failure
作业在至少一个早期阶段的作业失败时执行,所以如果你之前有多个作业,你可能需要使用额外的变量来验证清理是否应该运行.