我在.gitlab-ci.yml
中写的工作很少,而我的问题与此SO Question相似。但是,提供和接受的答案不适用于我的情况。
该作业具有after_script部分,该部分在主要任务完成或失败时执行。
问题:我根据主要任务是成功还是失败发送了一封电子邮件警报,但是找不到任何Gitlab CI变量来指示要在警报电子邮件中阐明的工作结果。
如何在after_script部分中确定主要任务是成功还是失败?”
如果我使用when: on_failure
,那么我的问题是何时定义我的when: on_success
作业,因为这些作业将取决于该作业之前的作业-因此我只能执行其中的一项。为此,我一直试图在Gitlab Variables中找到变量,但找不到。
此外,在我的脚本中-我可以写if条件,但我正在检查是否有人可以提供更好的替代解决方案
答案 0 :(得分:0)
问题:我根据主要任务是成功还是失败发送了电子邮件警报,但我在警报电子邮件中找不到任何指示作业结果的 Gitlab CI 变量。
<块引用>此外,在我的后脚本中 - 我可以编写 if 条件,但我正在检查是否有人可以提供更好的替代解决方案
也许您会对新的 stage
提供电子邮件通知工作感兴趣。
完整的 .gitlab-ci.yml
示例:
stages:
- build
- notify
build_job:
stage: build
script:
- echo "Your awesome script"
allow_failure: false # it's here just clarify the workflow, it's false by default
email_alarm:
stage: notify
when: on_failure
script:
- echo "Your alarm notification to email"
email_success:
stage: notify
when: on_success
script:
- echo "Your success notification to email"
所以,这里是:只有在 email_alarm
失败时才会执行 build_job
。而 email_success
只有在 build_job
成功完成后才会被执行。
如果您需要从 build_job
向电子邮件提供一些工件 - 在 gitlab artifacts
和 build_job
作业中使用 email_alarm/email_success
。