这个问题类似于如何在github-actions中运行步骤,即使前一个步骤失败,仍会导致作业失败,但是已接受的答案对我没有帮助,因为它创建了一个额外的作业。
我想要实现以下目标:
我想要实现以下目标:
- 当test-app(step2)通过时,应该运行test-clean步骤,github action工作流返回成功。
- 当test-app(step2)失败时,应运行test-clean、action-slack和fail-action步骤。github action工作流返回失败。
name: CI
on:
pull_request:
branches:
- master
push:
branches:
- master
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: test-app
run: ./gradlew test
- name: test-clean
run: some cleanup that should run always
- name: action-slack
if: ${{ step2.result != 'success' }}
uses: 8398a7/action-slack@v3
with:
status: ${{ step2.result }}
fields: repo,message,commit,author,action,eventName,ref,workflow,job,took
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
- name: fail-action
run: |
if ${{ step2.result != 'success' }}; then
exit 1
fi
failure()
之后的部分。 - Matt