jua*_*uan 6 github github-actions
我已经设置了一个 Github 操作来在失败时发送一封电子邮件(用于集成测试),并且我想发送另一封电子邮件来通知它已恢复;为此,我需要知道上一次运行是否失败但当前运行是否成功。
这是失败的代码:
(...)
- name: Send mail if failed
if: ${{ failure() }}
uses: juanformoso/action-send-mail@1
with:
(...)
Run Code Online (Sandbox Code Playgroud)
有办法实现我需要的吗?就像是${{ if success_but_previous_failed() }}?
编辑:我的意思是在工作流程“运行”之间,这是我想要检测的情况:
最后一次运行应该发送“测试已恢复”邮件
您可以使用GitHub Actions API并向以下位置发出请求:
GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs
Run Code Online (Sandbox Code Playgroud)
为了获取特定工作流程的所有运行,然后解析输出以检索最新的运行结果。
我将使用这个公共存储库向您展示一个示例:
- name: Get latest workflow run status
id: latest-workflow-status
run: echo "::set-output name=result::$(curl https://api.github.com/repos/sdras/awesome-actions/actions/workflows/32764/runs 2>/dev/null | jq -r '.workflow_runs[0].conclusion')"
- name: Run only if previous workflow run failed and the current succeeded
if: ${{ success() && steps.latest-workflow-status.outputs.result == 'failure' }}
run: ...
Run Code Online (Sandbox Code Playgroud)
您可以从此请求获取工作流 ID:
https://api.github.com/repos/sdras/awesome-actions/actions/workflows
| 归档时间: |
|
| 查看次数: |
1732 次 |
| 最近记录: |