Fix BDD test failure masking by adding pipefail to staging workflow #261
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.

This PR fixes a critical issue where failed BDD tests were incorrectly reporting as successful in the CI workflow, causing failed builds to appear as passing.
Problem
The staging test workflow in
.github/workflows/on_call_staging_test.yamlwas using a pipeline command:In bash, pipelines return the exit code of the last command by default. This meant that
$?captured the exit code oftee(which is always 0) instead of thedocker compose run testcommand, causing failed BDD tests to be reported as successful.For example, the issue showed this output:
✅ BDD tests passed ← This was incorrect
Solution
Added
set -o pipefailbefore the BDD test execution. This bash option ensures that pipelines return the exit code of the first failing command rather than the last command.Now when BDD tests fail:
docker compose run testcommand exits with code 1tee)Testing
The fix has been thoroughly validated with multiple test scenarios:
Fixes #260.
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.