簡體   English   中英

Cloudposse CodeFresh — 拉取請求管道規范 — 終止而不將狀態設置為“失敗”

[英]Cloudposse CodeFresh — pull-request pipeline spec — terminate without setting status to “Failed”

我有一個 CodeFresh,GitHub 拉取請求管道。

有兩種情況, PR 標記為 "Failed"理想情況下它會顯示為 "Pending"或無狀態。

場景一:

當一個新事件被觸發時,它會終止之前的構建(如預期的那樣)

構建被管道策略終止 - 分支<my-branch>上的拉取請求觸發了新構建

這一切都很好,但是構建在 GitHub 上顯示為“失敗”。 理論上,新構建會撤消“失敗”狀態,但這可能需要相當長的時間,而且很難跟蹤最新運行的構建是什么。 我的terminationPolicy規范如下所示:

terminationPolicy:
  - type: branch
    event: onCreate

終止政策文檔: https://codefresh.io/docs/docs/integrations/codefresh-api/?#full-pipeline-specification

場景二:

我們想繞過基於應用標簽的構建。 例如: "skip-test" ,或者能夠在沒有branchRegex限制的情況下運行測試。

steps:
  harakiri:
    ...
    commands:
      - codefresh terminate ${{CF_BUILD_ID}}
    when:
      condition:
        any:
          isWorkInProgress: "match('${{CF_PULL_REQUEST_LABELS}}', 'WIP', false) == true"

再次,效果很好。 但將 PR 標記為“失敗”。


如果有辦法將命令注入其中任何一個,我可以使用它。 但是我們如何布置它需要整個步驟才能將狀態更改為“待定”。 (所以我不能簡單地在harakiri步驟中添加一個額外的“命令”)

有什么想法嗎?

方案 1

我可以建議您使用帶有鈎子的 github-status-updater(而不是默認狀態更新)

所以基本上它會在構建開始時設置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: false

codefresh replace -f file.yml

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM