-
Notifications
You must be signed in to change notification settings - Fork 282
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
[BENCHMARK] Onboarding OSB to Continuous Builds for Dockerhub Staging and TestPyPi + Automatic Copy-Over #4723
Comments
As discussed in the meeting there are multiple approaches, I will list a few here: 1. Move to GitHub Actions:
2. Use Jenkins for all:
Thanks. |
Regarding,
We can leverage something like https://github.com/opensearch-project/opensearch-k8s-operator/blob/main/jenkins/release.jenkinsfile#L85-L127, today the operator docker images are released in the same way, please check. |
Did a bit of analysis and pushing to testpypi on every pr merge is not as straightforward it seems like, reason being once the package has been published with a specific name and version it cannot be overwritten, see https://peps.python.org/pep-0427/#file-name-convention. So in case we want to publish on every push we will have to another identifier, like |
How about on-demand publish to testpypi? Does it have to be per PR merge? |
The current docker file does a |
@rishabh6788 @gaiksaya @peterzhuamazon Sorry for the late reply. If docker images are already being continuously built, there might not be a need to have continuous builds to TestPyPi, especially if we're already doing an official minor release on PyPi each month. We can just focus on implementing the continuous builds (new build on every PR merged into main) for OSB's docker staging account. That way, if users can't wait until the next monthly release on PyPi, they can resort to using OSB's Docker Staging images to test out recent changes like Sayali suggested. Let me know your thoughts? |
Hi @IanHoang , I believe @rishabh6788 had pointed out to me earlier (please correct if I am wrong) that even docker images are using pypi artifacts to install opensearch-benchmark on the container. Can you point us to the docker images build code base? |
@gaiksaya here is the docker image from the OSB code base. We could circumvent this by adding an additional line that git clones the repository from Github and does a |
That sounds great! Pypi would not be required then. Need to make docker image flexible enough to change the behavior for development and Prod but looks like it is doable. |
Hi, After a quick discussion with @gkamat and @IanHoang, we will try to add these steps to the github actions:
We can start with the x64 image now, once it works we can expand to multi-arch later. Thanks. |
Seems like docker build is already setup in benchmark repo: |
According to Ian it is outdated so I will remove it and add the updated ones using build repo. |
Since we are not possible to run unittest within docker, we need to directly start docker container at host level. GitHub Actions will support new arm64 linux server by the end of the year for open source repositories: We will add the test with x64 runner 1st. |
Have talk with @gkamat and he will take over the next step of adding IT. |
We could directly publish to TestPypi through GHA once we added authorized publisher on TestPypi. We don't have to use Jenkins for building or releasing purpose. |
We are not publishing to test pypi anymore as local build wheel is good enough for the test. Thanks. |
Marking as done since we have added a workflow in OSB to push a new staging docker image for each merge. |
Is your feature request related to a problem? Please describe
This issue addresses two points: continuous builds on commits in the OpenSearch Benchmark (OSB) repository and automating copy-overs.
Continuous Builds for OSB Commits: OSB users have expressed interest in using "staging" environments where they can run OSB with latest commits without having to wait for the next official release. Currently, users can git clone the OSB repository and run
python3 -m pip install -e .
to test the latest commits and changes. However, this can be tedious.Copy-overs: OSB currently has a Github actions workflow that gets triggered when a tag is pushed by a maintainer. The workflow triggers a Jenkins workflow to release OSB to PyPi and OpenSearch's Dockerhub Staging account. For each release, OSB maintainers have to engage with OpenSearch-Build on-call to copy over the staging account's image over to OpenSearch's Dockerhub Production account and ECR account.
Describe the solution you'd like
Each time a commit is merged into the OSB main branch and latest minor version branch, OSB Dockerhub Staging images for main branch and latest minor version branch can be overwritten to include the latest changes.
OSB Jenkins file should also be updated to include a one-click copy-over so that OpenSearch Build on-call does not need to be engaged to copy over Dockerhub staging images to Dockerhub production.
We are open to other ideas and solutions!
Describe alternatives you've considered
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: