热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

.gitlab-ci.ymlafter_script部分:如何判断任务成功还是失败?

如何解决《.gitlab-ci.ymlafter_script部分:如何判断任务成功还是失败?》经验,为你挑选了2个好方法。

我正在使用Gitlab CI,因此一直在处理相当复杂的.gitlab-ci.yml文件。该文件具有一个after_script部分,该部分在主要任务完成或主要任务因某种原因失败时运行。问题:我需要根据主要任务是成功还是失败进行不同的清理,但是我找不到任何表示主要任务结果的Gitlab CI变量。

在该after_script部分中,我怎么知道主要任务是成功还是失败?



1> 小智..:

可接受的答案可能适用于大多数情况,但是它不能回答原始问题,并且仅在每个阶段只有一份工作的情况下才有效。

:目前有一个功能请求打开(问题/ 3116)来处理on_failure,并on_successafter_script

这可能是可以使用变量作业状态传递给一个after_script脚本,但是这也有一个功能要求(问题/ 1926年)建成能之间的共享变量before_scriptscriptafter_script

一种解决方法是写入将在after_script块期间访问的临时文件。

test_job:
  stage: test
  before_script:
    - echo "FAIL" > .job_status
  script:
    - exit 1
    - echo "SUCCESS" > .job_status
  after_script:
    - echo "$(cat .job_status)"



2> Rekovni..:

after_script建议您定义一个阶段,并使用when语法(可以在其中使用when: on_failure或)来定义另一个阶段,而不是确定任务在中是否成功或失败when: on_success


文档中的示例:

stages:
- build
- cleanup_build
- test
- deploy
- cleanup

build_job:
  stage: build
  script:
  - make build

cleanup_build_job:
  stage: cleanup_build
  script:
  - cleanup build when failed
  when: on_failure

test_job:
  stage: test
  script:
  - make test

deploy_job:
  stage: deploy
  script:
  - make deploy
  when: manual

cleanup_job:
  stage: cleanup
  script:
  - cleanup after jobs
  when: always


推荐阅读
author-avatar
小帅
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有