-
Notifications
You must be signed in to change notification settings - Fork 611
tests: add feature tagging workflow #15148
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
tests: add feature tagging workflow #15148
Conversation
Tue Apr 8 07:39:18 UTC 2025 Spread tests skipped |
3d46364
to
34ed733
Compare
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #15148 +/- ##
===========================================
- Coverage 78.09% 0 -78.10%
===========================================
Files 1190 0 -1190
Lines 158458 0 -158458
===========================================
- Hits 123746 0 -123746
+ Misses 27017 0 -27017
+ Partials 7695 0 -7695
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
34ed733
to
44ba42a
Compare
ba0efa9
to
75369e9
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First pass. I'm kind of -1 on the python that looks more like perl in the sense that everything is a dict. Can we avoid that and actually use objects of some type (typedict is a hack but passable). If loading json is a problem we can sync to find a solution.
run-spread
Outdated
if [ -z "$SPREAD_TAG_FEATURES" ]; then | ||
SPREAD_USE_PREBUILT_SNAPD_SNAP=true exec spread "$@" | ||
else | ||
WRITE_DIR="/tmp/features" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, can we use a temp dir?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since this would be for personal use, I thought tmp would be the best option.
56daeb9
to
49a5046
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2nd pass, thanks a lot for the improvements.
Marking as requested changes because a few small mistakes inline.
113c32b
to
3ce2357
Compare
… reruns instead of runs)
bd7e53e
to
fd070a3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice, thanks
* tests: add feature-tagging workflow * tests: add workflow rerun in case of failure * tests: add feature-tag consolidation if spread task has been rerun * tests: added feature tagging on master pushes of only changed tests * tests: addressed review comments and changed tests name format from using '\' to using '--' to reflect changes in debug tagging PR * github: added option to force the use of the rules file * tests: create structures for features * github: add feature extract to workflow * github,tests,run-spread: fix name change and type check * github: update workflows to paths in tests/utils/features directory * run-spread, tests: move run-spread features logic to features directory * github: fix reruns to reflect name (number of reruns are now actually reruns instead of runs) * tests: change run-spread script to only contain feature tagging * tests: correct unbound variable in tag-features * tests, github: correct feature tag args * github: corrected path ot featcomposer.py * tests: correct RUN_TESTS passed to log-analyzer script and simplify passing features * github: extract all feature-tagging logic to feature-tagging.yaml * github: remove force rulesets * github: use github upload action * github: add run_id to spread artifact name
Requires #15264Requires #15091This adds the ability to generate feature tags for a spread run in two ways:
Both methods permit automatically rerunning spread and consolidating the ending results into system-by-system json files of features. In the workflow, the results are uploaded as an artifact, though this is a temporary measure since in the future the tags will instead be loaded into a DB elsewhere.
Both the run-spread additions and the workflow contain a rerunning mechanism to automatically rerun spread with the failed tests a maximum number of times. Once the workflow/run-spread script has finished all spread runs, including reruns, it will consolidate the feature tagging results into a single final json file for each system. It consolidates results by creating a final version with all tests run where more recent individual test results substitute the less recent.