-
Notifications
You must be signed in to change notification settings - Fork 30
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
Parse pytest warning summaries from colcon logs. #447
Conversation
The parser itself is actually part of the primary Jenkisn configuration and requires separate documentation or being contributed as an upstream warning parser. Groovy-based parsers are not allowed to run on console output so this scans the stderr.log files from colcon test output. Signed-off-by: Steven! Ragnarök <steven@nuclearsandwich.com>
We're getting these warnings secondhand via a pytest warnings summary via colcon logs and there were additional items that needed to be parsed out in order for the warning data to be accurate. Signed-off-by: Steven! Ragnarök <steven@nuclearsandwich.com>
Even with the timestamp prefix removed) the proposed patch will only extract a small subset of cases from the following example snippets from nightly_linux_debug - test_launch_ros
nightly_win_deb - test_launch_ros
nightly_win_deb - domain_coordinator
nightly_win_deb - tf2_ros_py
nightly_linux_debug - tf2_ros_py
|
I hadn't encountered any of the multi-line examples when I first drafted this PR. We'd either need to create a mega-regexp that handles either the single-line or multi-line cases or try to move the analysis into a Java-based Jenkins plugin where we have a bit more flexibility. Another option could be creating a Java-based analysis model plugin for the warnings. I think further work on this approach would require determining whether we should target pytest's warning summaries or warnings in their natural habitat. Pytest documentation suggests the warnings summary (as documented) can be disabled and they recommend doing so if there is existing support for warnings in our analysis suite however there currently isn't so either way we would have to supply the plugin. |
@nuclearsandwich I propose to close this in favor of #509. |
The parser itself is actually part of the primary Jenkins configuration
and requires separate documentation and potentially being separated out as a warning
parser plugin.
Groovy-based parsers are not allowed to run on console output so this
scans the stderr.log files from colcon test output.
A test build with this parser enabled is here: https://ci.ros2.org/job/test_ci_linux/39/colcon-log-pytest-warnings
The regexp is
and the Groovy script
The above assumes the colcon log is printing elapsed time and the test which triggered the warning is being printed before the
...
by Pytest.