我有一个CodeFresh,GitHub拉请求管道.
有两种情况下,PR标记为“失败”,而理想的情况是显示为“未决”或无状态。
设想1:
当一个新事件被触发时,它将终止先前的构建(如预期的那样)。
生成由管道策略终止-分支
<my-branch>上的拉请求触发新生成。
这一切都很棒,但是构建在GitHub上显示为“失败”。从理论上讲,新构建将取消“失败”状态,但这可能需要相当长的时间,并且很难跟踪最新运行的构建是什么。我的terminationPolicy规范如下所示:
terminationPolicy:
- type: branch
event: onCreate终止策略文档:https://codefresh.io/docs/docs/integrations/codefresh-api/?#full-pipeline-specification
设想2:
我们希望绕过基于应用标签的构建。例:"skip-test",或者能够不受branchRegex的限制而运行测试。
steps:
harakiri:
...
commands:
- codefresh terminate ${{CF_BUILD_ID}}
when:
condition:
any:
isWorkInProgress: "match('${{CF_PULL_REQUEST_LABELS}}', 'WIP', false) == true"再说一次,效果很好。但却将公共关系标为“失败”。
如果有一种方法可以将命令注入其中任何一种,我可以使用它。但是,我们如何制定它,它需要整个步骤,将状态改为“待定”。(因此我不能简单地向harakiri步骤添加一个额外的“命令”)
有什么想法吗?
发布于 2021-04-09 13:47:05
场景1
我可以建议您使用带有钩子的github-状态更新程序(而不是默认的状态更新)。
因此,基本上,它将在构建开始时设置pending状态(如果策略终止,则保持此状态)。
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
spec:
options:
enableNotifications: falsecodefresh replace -f file.yml
https://stackoverflow.com/questions/65941051
复制相似问题