Skip to content

ci(docker): Publish versioned, multiarch releases #153

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

Merged
merged 2 commits into from
Mar 11, 2025

Conversation

davidsow
Copy link
Contributor

Which problem is this PR solving?

This change to the publication process solves two outstanding issues:

As these two issues have been outstanding for some time, I opted not to create a new issue for these changes. I am happy to rectify that if need be.

Description of the changes

Versioned Publication

  • The existing publish-image.yml GitHub workflow has been retooled to allow for tagged releases.
  • The publication workflow now runs on two additional triggers:
    • release: Creating a release on the GitHub repo will publish an image with a matching tag
    • workflow-dispatch: The workflow can be run manually with an arbitrary tag string.
    • Both new triggers will also update the latest tag, preserving the current behavior.

This change presupposes no particular release / versioning strategy - it merely provides the foundation
for adopting one. At present, any deployment of this software is vulnerable to a breaking release of the
code overriding the latest tag with no warning. This change provides the ability to create a long-lived
image publication that can be considered stable.

ARM64

  • The publish-image.yml workflow now publishes both linux/amd64 and linux/arm64 images.

Tests

  • The version of testcontainers has been updated to v1.20.6 to fix a bug preventing tests passing on (at least) Apple M1 hardware.

How was this change tested?

  • Executed testing instructions listed in README.md
  • GitHub workflow behavior was tested on a private testbed repository to ensure correct dispatch behavior and tag computation.
  • The linux/arm64 variant of the image builds and tests well on Apple M1 hardware.
    • Testing on other ARM-based chips remains outstanding.

Checklist

Copy link
Member

@yurishkuro yurishkuro left a comment

Choose a reason for hiding this comment

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

Thanks for the fix!

Comment on lines 4 to 5
push:
branches: [ main ]
Copy link
Member

Choose a reason for hiding this comment

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

I think we should remove this trigger, otherwise latest is just random, not an official release

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm inclined to agree! I just retained it to preserve the existing behavior. I'll remove it in a followup commit shortly.

Signed-off-by: Kleo Davidson <[email protected]>
Copy link
Member

@yurishkuro yurishkuro left a comment

Choose a reason for hiding this comment

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

Thanks!

@yurishkuro yurishkuro merged commit 49e3069 into jaegertracing:main Mar 11, 2025
4 checks passed
@yurishkuro
Copy link
Member

@davidsow https://github.com/jaegertracing/spark-dependencies/actions/runs/13777743816/job/38530254487

ERROR: Multi-platform build is not supported for the docker driver.
Switch to a different driver, or turn on the containerd image store, and try again.

@davidsow
Copy link
Contributor Author

Interesting - I will run this down and determine a fix.

@yurishkuro
Copy link
Member

@davidsow
Copy link
Contributor Author

That does seem to be the problem! I've opened #154 to rectify the build failure

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.

Support ARM64 arch image Spark dependencies image is not tagged on dockerhub
2 participants