-
Notifications
You must be signed in to change notification settings - Fork 438
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
Add docker-build workflow (#942) #970
Conversation
af0cb2c
to
7a8e46d
Compare
7a8e46d
to
4a80ae7
Compare
We probably need to work out where exactly we want the docker images to live, GitHub doesn't make it very easy to publish docker images cross-user/org. @ix5 do we want to move the main repo to the isso-comments org at some point? |
What other repo is there, why not just publish the images to here? |
This PR uses the ghcr.io/isso-comments namespace, and I think the plan is also to move this repo to GitHub.com/isso-comments/isso eventually |
I talked to @posativ about moving the repo over to the org, but can't quite remember what prevented us from doing that. PR itself LGTM. |
Just to make it clear, this is blocked until we have a decision about moving the repo over to the org. |
could we just publish to posativ/isso in the mean time? |
That would be fine by me, but I don't have access to the I do have access to the isso-comments org and could add the deploy key as an accepted one, just as I have done for the GitHub pages repo (see sso-comments/isso-comments.github.io). So either way, we're blocked until Martin finds time to act on this. |
Just checking in, is there anything you need from me to help move this forward? I'd be happy to assist in any way necessary. |
Thanks; I think we're basically just waiting from a response from @posativ |
The repo has now been migrated, and references are being updated in #996 so let's land this! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I hadn't realized this at the time, but this change means we're re-building the :latest
docker tag on every push to master
.
Up until this change, I had handled the docker image policy as :latest
for the latest tagged release (0.13
at the time IIRC) and :dev
for images from the master
branch.
Could we please change back to :latest
being the latest release, not "bleeding edge" master
branch?
type=semver,pattern={{major}} | ||
type=semver,pattern={{major}}.{{minor}} | ||
type=semver,pattern={{version}} | ||
type=raw,value=latest,enable={{is_default_branch}} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The way I read this, the action rebuilds and pushes the :latest
image on every push to the default branch (=master
).
I think it's pretty common in docker that latest just refers to whatever the latest thing that was built and pushed was; the way the latest tag works in docker this is pretty common hard to avoid. I think that if we want to have a docker tag for the latest release, we should just create a new ":release" tag and update that accordingly. That said, I think it's good practice for people to specify an explicit version (v1.0) as a tag so that their service don't get silently upgraded whenever they restart their services, including any regressions that may cause. |
Checklist
CHANGES.rst
because this is a user-facing change or an important bugfixWhat changes does this Pull Request introduce?
This PR adds an automated docker build using GH actions.
Images are build automatically for the following patterns:
master
(i.e. merge a PR): build and tag image with:latest
(example build):0
), and major+minor version (i.e.:0.14
) (example build):0.14.1-post.0
) (example build)Furthermore this includes a multi-arch docker build: the image will be build for linux/amd64, and linux/arm64/v8, arguably the most common platforms for both large production environments and small-scale self-hosted applications.
Example image are available via my fork: https://github.com/janw/isso/pkgs/container/isso
Why is this necessary?