首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cloudposse CodeFresh --拉请求管道规范--终止而不将状态设置为“失败”

Cloudposse CodeFresh --拉请求管道规范--终止而不将状态设置为“失败”
EN

Stack Overflow用户
提问于 2021-01-28 16:16:08
回答 1查看 96关注 0票数 0

我有一个CodeFresh,GitHub拉请求管道.

有两种情况下,PR标记为“失败”,而理想的情况是显示为“未决”或无状态。

设想1:

当一个新事件被触发时,它将终止先前的构建(如预期的那样)。

生成由管道策略终止-分支<my-branch>上的拉请求触发新生成。

这一切都很棒,但是构建在GitHub上显示为“失败”。从理论上讲,新构建将取消“失败”状态,但这可能需要相当长的时间,并且很难跟踪最新运行的构建是什么。我的terminationPolicy规范如下所示:

代码语言:javascript
复制
terminationPolicy:
  - type: branch
    event: onCreate

终止策略文档:https://codefresh.io/docs/docs/integrations/codefresh-api/?#full-pipeline-specification

设想2:

我们希望绕过基于应用标签的构建。例:"skip-test",或者能够不受branchRegex的限制而运行测试。

代码语言:javascript
复制
steps:
  harakiri:
    ...
    commands:
      - codefresh terminate ${{CF_BUILD_ID}}
    when:
      condition:
        any:
          isWorkInProgress: "match('${{CF_PULL_REQUEST_LABELS}}', 'WIP', false) == true"

再说一次,效果很好。但却将公共关系标为“失败”。

如果有一种方法可以将命令注入其中任何一种,我可以使用它。但是,我们如何制定它,它需要整个步骤,将状态改为“待定”。(因此我不能简单地向harakiri步骤添加一个额外的“命令”)

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2021-04-09 13:47:05

场景1

我可以建议您使用带有钩子的github-状态更新程序(而不是默认的状态更新)。

因此,基本上,它将在构建开始时设置pending状态(如果策略终止,则保持此状态)。

代码语言:javascript
复制
hooks:
  on_success:
    title: Set GitHub deployment status to "success"
    image: cloudposse/github-status-updater
    environment:
      - GITHUB_ACTION=update_state
      - GITHUB_TOKEN=${{GITHUB_TOKEN}}
      - GITHUB_OWNER=${{CF_REPO_OWNER}}
      - GITHUB_REPO=${{CF_REPO_NAME}}
      - GITHUB_REF=${{CF_REVISION}}
      - GITHUB_CONTEXT=Codefresh CI - Build
      - GITHUB_STATE=success
      - GITHUB_TARGET_URL=${{CF_BUILD_URL}}
  on_fail:
    title: Set GitHub deployment status to "failure"
    image: cloudposse/github-status-updater
    environment:
      - GITHUB_ACTION=update_state
      - GITHUB_TOKEN=${{GITHUB_TOKEN}}
      - GITHUB_OWNER=${{CF_REPO_OWNER}}
      - GITHUB_REPO=${{CF_REPO_NAME}}
      - GITHUB_REF=${{CF_REVISION}}
      - GITHUB_CONTEXT=Codefresh CI - Build
      - GITHUB_STATE=failure
      - GITHUB_TARGET_URL=${{CF_BUILD_URL}}
  on_elected:
    title: Set GitHub deployment status to "pending"
    image: cloudposse/github-status-updater
    environment:
      - GITHUB_ACTION=update_state
      - GITHUB_TOKEN=${{GITHUB_TOKEN}}
      - GITHUB_OWNER=${{CF_REPO_OWNER}}
      - GITHUB_REPO=${{CF_REPO_NAME}}
      - GITHUB_REF=${{CF_REVISION}}
      - GITHUB_CONTEXT=Codefresh CI - Build
      - GITHUB_STATE=pending
      - GITHUB_TARGET_URL=${{CF_BUILD_URL}}    

若要禁用默认状态更新,请使用CLI修补管道规范。

codefresh get pip <name> -o yaml > file.yml

代码语言:javascript
复制
spec:
  options:
    enableNotifications: false

codefresh replace -f file.yml

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65941051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档