【发布时间】:2023-01-03 04:53:20
【问题描述】:
我有一个使用 Dockerfile 封装 linter 的自定义 GitHub 操作。在推送时,我想验证 linter 是否正常工作,即它应该在正确输入时成功并在错误输入时失败:
.github/workflows/test-action.yml
name: Test Action
on:
workflow_dispatch:
push:
branches:
- master
jobs:
test-correct:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Lint correct input
uses: ./
with:
file: should-succeed.ex
test-incorrect:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Lint incorrect input
uses: ./
with:
file: should-fail.ex
但是在 GitHub 上,例如https://github.com/myorg/myrepo/actions/runs/123456789 这当然会将成功的工作涂成绿色,将不成功的工作涂成红色。我如何告诉 GitHub 反转颜色,以便失败导致成功,成功导致失败?
编辑:我尝试了以下但它不起作用,因为 if: failure() 将不会触发:
[...]
- name: Lint incorrect input
uses: ./
continue-on-error: true
with:
file: should-fail.ex
- if: failure()
run: true
- if: success()
run: false
另一方面,如果我删除 continue-on-error: true 行,那么它也不会工作,因为即使我返回 true,整个作业也会被计为失败。
【问题讨论】:
-
使用
uses,我认为你做不到。如果您是running 一个命令,您可以捕获非零退出,但这不是这里的选项。
标签: github-actions building-github-actions