即使一步失败,也可以将GitHub Actions工作流标记为成功。

5

我有以下工作流程大纲

jobs:
  
  job1:
 
    steps:
  
    - name: step 1 of job 1
      run: exit 1

  job2:
  if: failure()
  
    steps:

    - name: step 1 of job 2
      run: echo "Hello World"

我知道上述运行了。但是它将我的相应状态检查标记为失败(红色)。有没有办法使操作执行成功?


在第一步中捕获它,这样该步骤就不会失败了吗? - jonrsharpe
我希望上述文件中的所有内容都能运行,包括 job2 - pkaramol
1个回答

3
您可以使用continue-on-error步骤选项:

jobs.<job_id>.steps[*].continue-on-error

当步骤失败时,防止作业失败。设置为true以允许作业在此步骤失败时通过。

您可以检查步骤的outcome以了解其是否失败,例如:
steps.<id>.outcome != 'success'

请看这里的文档,了解有关结果的信息。

但这是否意味着第二个工作,它运行 if: failure(),不会运行,因为前一个工作实际上并没有失败? - jonrsharpe
你可以使用 if: success() || failure()if: always(),参见 https://docs.github.com/en/actions/learn-github-actions/expressions#status-check-functions。 - Matteo
1
当然可以,但是你没有提到这个更改,这意味着作业会无条件地运行而不是有条件地运行,这从根本上改变了行为。 - jonrsharpe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接