Feature request: Add way to distinguish success and success-with-errors for continue-on-error jobs

I have a few jobs that I don’t want to fail the workflow on failure. However, I do want to be able to react to the failure in further jobs, i.e. with needs.A.result. This is currently impossible: continue-on-error means that even if the job errors, the result is set to success (note that the UI still shows failure).

I would like for either result to be set to failed or a new state (errored?) when a continue-on-error job errors, or for there to be some other way to detect errors in continue-on-error jobs. The best solution is probably what is currently done for steps: a pre-continue-on-error output (e.g. outcome) and a post one (e.g. conclusion, but could keep the name result)

1 Like

Are you able to take advantage of the step specific outcome by passing the value as a job output? I’ve found this suitable when I had a job that needed to behave in a certain way when a step in a previous job had a certain result. If you’re unable to use continue-on-error on a specific step within a job – that is, your job can fail for lots of unknown reasons in many different steps – it might be worth probing if it’s possible to simplify. A good robust Workflow has well understood failure points, ideally limited to steps.

      build-outcome: ${{ steps.build.outcome }}
    runs-on: ubuntu-latest
      - id: build
        name: Do something that might fail
        continue-on-error: true
        run: ./build
    runs-on: ubuntu-latest
      - performs-risky-build
      - name: Deploy build (dependent upon successful build)
        if: ${{ needs.perform-risky-build.outputs.build-outcome == 'success' }}
        run: echo "Deploying a successful build"

Unfortunately not, I need the continue-on-error: true at job level, there are multiple (generated) steps that may fail.

There’s a thread over here that I think is related to this: continue-on-error (allow failure), UI indication