fix(workflow): fail when run outputs are missing#187
Open
liamnwhite1 wants to merge 2 commits into
Open
Conversation
46e8c4b to
2696c7f
Compare
46c7077 to
a17d3be
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Make workflow runs fail when an executed step does not produce all expected valid outputs.
Related issues
Details
This fixes a bug where example tests could pass even when a workflow case failed to complete.
Component.run_component()previously printed a warning if an execute stage finished but the expected output files were missing or invalid. Because no exception was raised, pytest and CI could still report success.The fix changes that post-run validation path to raise a
RuntimeErrorafter listing the expected output files. A regression test covers an execute stage that returns successfully but leaves its declared output missing.Impact
Risk level: Low.
This changes failure behavior for workflows with declared output requirements: missing or invalid outputs after execution now fail loudly instead of logging a warning. That should make example tests and CI catch incomplete runs reliably.
Testing strategy
Environment:
.venvCommands run:
.venv/bin/python -m pytest tests/test_workflow_context.py.venv/bin/python -m pytest tests/test_workflow_context.py tests/test_component_output_paths.py.venv/bin/python -m pytestgit diff --checkNote:
uvwas not available in this shell, so testing used the repo.venv. External example CI jobs were not run locally because they require the external application/container environment.Checklist
ARCHITECTURE.md, developer docs,and/or ADRs where needed.