-
Notifications
You must be signed in to change notification settings - Fork 272
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
Do not fail the bundle build when there is component failure #3741
Conversation
Codecov Report
@@ Coverage Diff @@
## main #3741 +/- ##
==========================================
- Coverage 91.54% 91.46% -0.09%
==========================================
Files 182 182
Lines 5420 5427 +7
==========================================
+ Hits 4962 4964 +2
- Misses 458 463 +5
|
Below are the artifacts from my preliminary testing. Final output: Directory Structure:
build-manifest.yml.zip |
@dblock Do you think it is a good idea to not block the distribution build in case of certain plugin failures? |
src/run_build.py
Outdated
@@ -69,12 +70,20 @@ def main() -> int: | |||
builder.export_artifacts(build_recorder) | |||
except: | |||
logging.error(f"Error building {component.name}, retry with: {args.component_command(component.name)}") | |||
raise | |||
if component.name in ['OpenSearch', 'common-utils', 'OpenSearch-Dashboards']: |
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.
I am not sure if I like this approach.
There are so many dependencies between plugins, such as AD based on JS/ML, neural based on KNN, and more.
I would say just add everything to the failed list, and the users can figure out the issue by checking failed list, instead of hard coding which one should hard fail which one should be added to list.
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.
I would also say let us add a param to hard fail
no matter what, so user can choose where 1 component fail immediately fail the entire thing, or get added to the fail list. Which is similar to your approach but does not have a hardcode list, but depending on user input params.
I would add a |
Thanks @dblock for the comment, it makes sense to keep it optional. |
+1 to go with |
Description
In the current scenario in case of any plugin build failure the complete distribution build is discarded and it keeps failing till the component owner fixes it. This can take from a few days to weeks blocking everyone else to continue with their testing and development using bundle build with their latest changes.
This PR adds support to continue the distribution build in case of any plugin failure so that a usable bundle artifact is generated with successful plugins installed.
Issues Resolved
List any issues this PR will resolve, e.g. Closes [...].
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.