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

Push docker images directly from CI #120

Closed
Tracked by #15
beta-ziliani opened this issue Aug 31, 2021 · 4 comments · Fixed by #156
Closed
Tracked by #15

Push docker images directly from CI #120

beta-ziliani opened this issue Aug 31, 2021 · 4 comments · Fixed by #156
Assignees

Comments

@beta-ziliani
Copy link
Member

Right now nightlies images are being pushed already, the difference lies in that the images of releases (apparently) uses OBS packages instead of hard-coded binaries. The intention as we understand it is to be able to deliver updateable images. However, that doesn't seem to be super important: those willing to have such images should simply add the steps to install crystal from a base image.

@bcardiff
Copy link
Member

For tagged release it would also make sense to publish in the official docker library at https://github.com/docker-library/official-images

We haven't done that so far because 0.x

Having a crystal in the official library will give us $ docker run crystal 😎 and a more standard naming for -musl images by mimicking other languages.

Eventually, keeping only the ci images for ourselves should be enough regarding crytallang/crystal docker images.

@straight-shoota
Copy link
Member

straight-shoota commented Oct 5, 2021

I think we just have to activate the publish_docker step in circleCI on tagged release. We already do that on maintenance and nightlies and it should work exactly the sam on tagged. The DOCKER_TAG variable is already set up for that.

It probably makes sense to roll that out after crystal-lang/crystal#11273

The only dodgy part is overriding the *-latest aliases. We certainly don't want that on maintenance and nightly builds. That's not hart do handle.
But we also might not want that on a tagged release, because latest does not always have to be the be most recently pushed release. For example, we could publish 1.1.2 after 1.2.0. So far, all our releases have been in strict chronological order. And I wouldn't expect that to change anytime soon. But you never know. Having such an automation might not be ideal in cases when it would be differnt.

That being said, it's not hard to fix if it goes wrong. With goes wrong I mean either forgetting to update latest without the automation or getting an "older" release incorrectly labeled as latest with the automation. The latter might be more sever, but overall less likely to have a chance at happening.

The same issue with latest applies to API docs as well (#117).

@Sija
Copy link
Contributor

Sija commented Oct 13, 2021

latest applies to version, not chronological ordering.

@straight-shoota straight-shoota linked a pull request Nov 15, 2021 that will close this issue
@straight-shoota
Copy link
Member

This has been resolved by crystal-lang/crystal#11309 and #156

Versioned Docker images are now published automatically from the CI workflow. Tagging of the latest release happens manually via the shell script helper.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants