Option to show soft-fail statuses as failures on GitHub

Hi,

We’re using the soft_fail feature for some steps in our CI pipelines, and it works well on the buildkite side, but the soft failures are reported as successes on GitHub. This old response calls this intended, but we would like an option to report soft failures as failed to GitHub instead, and it would really help us simplify our pipeline.

For context, we have a few different merge target branches, each representing a different release target or release stage in our process. We run a unified pipeline shared between those target branches, with some hacky workarounds to detect which branch’s requirements must be met. Since the requirements for these branches can differ, we’d like instead to have some jobs set to soft_fail, with the goal of requiring them via GitHub’s branch protection rules for the branches that need them. Obviously this can’t work today, since all the step statuses report as success.

Anecdotally too, our developers have missed a few long-term breakages in our soft_fail jobs, so making them visible in GitHub would help us catch those earlier as well. If this feature isn’t too hard or invasive to integrate, we would really appreciate it.

Many thanks,

Matt

Hi Matt,

Thanks for reaching out in our Community Forum with the detailed context. Soft-failed jobs currently report as success to GitHub by design, so they don’t block required status checks. I understand your use case calls for the opposite, and we’ll look at an opt-in pipeline setting to report soft-failed jobs as failed in GitHub but the overall build status would be unchanged. Until then, the only reliable workaround is a follow-up step that reads buildkite-agent step get outcome --step <key> and posts its own commit status through the GitHub API with your own token.

Let me know if you have any other questions

Thanks,

Dahtey