-
-
Notifications
You must be signed in to change notification settings - Fork 106
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
Avoid invoking build multiple times in CI pipeline #2589
Comments
This issue seems to be a good fit for newbie contributors. You are welcome to contribute to Weblate! Don't hesitate to ask any questions you would have while implementing this. You can learn about how to get started in our contributors documentation. |
- this verifies that merging actually works before doing publish - can be later used for proper merge as described in WeblateOrg#2589
- this verifies that merging actually works before doing publish - can be later used for proper merge as described in #2589
This is a very small step towards WeblateOrg#2589.
As shown in #2632, pushing won't work from pull requests (we would rather not grant access to images registry to untrusted builds). So probably the only usable approach to this is to use artifacts, but the question is how to make it work with multi-architecture images we need to produce. |
Reverting afa5c4c might be a way to go, just use artifacts instead of caches. |
- use base images built separately that contain all system dependencies - use multistage build to avoid devel deps in the final image - this also reduces pressure on GitHub cache, see WeblateOrg#2589
- use base images built separately that contain all system dependencies - use multistage build to avoid devel deps in the final image - this also reduces pressure on GitHub cache, see WeblateOrg#2589
- use base images built separately that contain all system dependencies - use multistage build to avoid devel deps in the final image - this also reduces pressure on GitHub cache, see WeblateOrg#2589
- use base images built separately that contain all system dependencies - use multistage build to avoid devel deps in the final image - this also reduces pressure on GitHub cache, see WeblateOrg#2589
- use base images built separately that contain all system dependencies - use multistage build to avoid devel deps in the final image - this also reduces pressure on GitHub cache, see #2589
Okay, this is really tricky. I've tried to make this work at WeblateOrg/docker-base#4 and there are several obstacles in Docker:
|
Describe the problem
Right now, we're misusing Docker caching between CI build steps to share the built image. This is fragile as can easily lead to building a different image in each job without noticing.
Instead, the build step should produce the images which would be tested, merged and published, where additional steps would not invoke build.
Describe the solution you would like
There is documentation to follow on this topic: https://docs.docker.com/build/ci/github-actions/multi-platform/#distribute-build-across-multiple-runners
https://docs.docker.com/build/ci/github-actions/share-image-jobs/ might also be useful, but that probably won't work with multi arch images (but might work for testing amd64 images)
Describe alternatives you have considered
No response
Screenshots
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: