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

Create a dedicated docker image for ArcticDB development #2086

Merged

Conversation

G-D-Petrov
Copy link
Collaborator

@G-D-Petrov G-D-Petrov commented Dec 19, 2024

Reference Issues/PRs

#2081

What does this implement or fix?

This PR aims to:

  • create a docker image with the dev dependencies
  • create a workflow to push it automatically to the github registry
  • remove the use of the action that installs the dependencies manually and use the new docker image

Successful manual run of the benchmark flow can be seen here.
It needed to be run manually because the changes to the workflow file are not picked up correctly in the automatic run here.

Any other comments?

Checklist

Checklist for code changes...
  • Have you updated the relevant docstrings, documentation and copyright notice?
  • Is this contribution tested against all ArcticDB's features?
  • Do all exceptions introduced raise appropriate error messages?
  • Are API changes highlighted in the PR description?
  • Is the PR labelled as enhancement or bug so it appears in autogenerated release notes?

@G-D-Petrov G-D-Petrov linked an issue Dec 19, 2024 that may be closed by this pull request
push:
paths:
- 'docker/**'
- '.github/workflows/dev_docker_image.yml'
Copy link
Collaborator

@phoebusm phoebusm Dec 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see the other jobs depend on Docker Image for Development job. So changes in the dev docker creation won't be reflected until the image got pushed in Docker Image for Development job.

I feel like the checksum checking method in cibw_docker_image.yml for triggering the creation of new docker image a better alternative

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We make changes to this docker very infrequently so I prefer to keep the flows a bit simpler and to not add dependencies between them unless it is needed.
Also this image will be used in other repos as well so it has to be tested manually in any case.

Copy link
Collaborator

@phoebusm phoebusm Dec 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes I am torn. I understand this docker image won't be changed frequently so it's hard to justify complicating already complicated wheel building process.
At the same time, if any changes made to this docker image, the CI can't tell us whether it works until the change is merged and tag latest is updated. Only manual test evidence can be relied on. This kinda defy the purpose of CI.
I'll approve it and leave it to @poodlewars for thoughts

Copy link
Collaborator

@poodlewars poodlewars Dec 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be nice to be able to run the CI with a candidate new image. How about a run parameter to choose the image tag rather than hardcoding latest? Would then be easy to try out a CI run with a candidate image.

Or having downstream jobs depend on this one sounds reasonable too. Either way works as long as it's all documented and easy for people to figure out.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good point , I've added a parameter to override the default tag

docker push $image_name:$image_ver

- name: Publish Docker image to GHCR as latest
if: startsWith(github.ref, 'refs/tags') || github.ref == 'refs/heads/master'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we push this for tags?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

copy-paste snafu, I've removed it

@poodlewars
Copy link
Collaborator

Please squash the commits when you merge

@G-D-Petrov G-D-Petrov merged commit 6371256 into master Dec 23, 2024
124 of 125 checks passed
@G-D-Petrov G-D-Petrov deleted the 2081-create-a-dedicated-docker-image-for-arcticdb-development branch December 23, 2024 10:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Create a dedicated docker image for arcticdb development
3 participants