Skip to content
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

Introducing incremental builds #3922

Closed
4 tasks done
Tracked by #3921
gaiksaya opened this issue Aug 24, 2023 · 3 comments
Closed
4 tasks done
Tracked by #3921

Introducing incremental builds #3922

gaiksaya opened this issue Aug 24, 2023 · 3 comments
Assignees
Labels
enhancement New Enhancement

Comments

@gaiksaya
Copy link
Member

gaiksaya commented Aug 24, 2023

Is your feature request related to a problem? Please describe

Building OpenSearch and OpenSearch dashboards takes a significant amount of time. An end to end distribution roughly takes 45min-1hour to build. The current process builds all the components along with the core from source everytime a build is triggered. However, this can be made efficient to accommodate following features:

  • Allow building only failed components on top of (given) previously built successful components.
  • Allow rebuilding and re-installing one single component
  • Allow rebuilding all dependent components if main dependent component changes. (Example: Job-scheduler needed a rebuild. All components dependent on JS needs and can be rebuilt)

Describe the solution you'd like

Describe alternatives you've considered

No response

Additional context

No response

@github-actions github-actions bot added the untriaged Issues that have not yet been triaged label Aug 24, 2023
@gaiksaya gaiksaya added enhancement New Enhancement and removed untriaged Issues that have not yet been triaged labels Aug 24, 2023
@bbarani bbarani moved this from Backlog to In Progress in OpenSearch Engineering Effectiveness Sep 1, 2023
@zelinh
Copy link
Member

zelinh commented Oct 19, 2023

Proposed approach:

We will enhance the current build workflow with a new --incremental binary argument.
e.g. ./build.sh manifests/2.10.0/opensearch-2.10.0.yml --incremental

For a complete incremental build:

  • Compare references between the build manifest from previous build and current input manifest.
  • Identify components for incremental rebuilding based on the previous build manifest.
  • Build these components, replacing previous artifacts with new ones in the builds folder, and generate a new build manifest.
  • Run the assemble workflow based on the new build manifest to generate the new distribution bundle.

Untitled Diagram drawio

@zelinh
Copy link
Member

zelinh commented Jan 30, 2024

The incremental build is onboarded to our python and Jenkins workflow. We now have it disabled as default. Once we validated it, we will enable it as default for distribution build Jenkins jobs.

@zelinh
Copy link
Member

zelinh commented Feb 27, 2024

Closing this issue as incremental build is now enabled as default in our CI build.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New Enhancement
Projects
Development

No branches or pull requests

2 participants