.gitlab-ci.yml中的条件after_script

reb*_*ion 5 gitlab gitlab-ci

我写的工作很少.gitlab-ci.yml,我的问题类似于这个SO问题。但是,提供和接受的答案不适用于我的情况。

作业具有after_script节,该节在主要任务完成或失败时执行。

问题:我根据主要任务是成功还是失败发送了电子邮件警报,但是我无法在警报电子邮件中找到任何表明工作结果的Gitlab CI变量。

我如何在after_script部分中判断主要任务是成功还是失败?”

如果使用when: on_failure,那么我的问题是我何时可以定义我的when: on_success工作,因为这些工作将取决于该工作之前的工作-因此,我只能执行其中的一项。我一直在尝试为此在Gitlab变量中找到变量,但找不到。

另外,在我的脚本中-我可以写if条件,但我正在检查是否有人可以提供更好的替代解决方案

gor*_*ore 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"
Run Code Online (Sandbox Code Playgroud)

所以,这里是:仅当失败时email_alarm才会执行。build_job并且email_success只有成功完成才会执行build_job

如果您需要通过build_job电子邮件提供一些工件,请使用gitlab artifactsinbuild_jobemail_alarm/email_successjobs。