-
Notifications
You must be signed in to change notification settings - Fork 2
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
Optimize the build time by doing manual docker image builds #4
Comments
As discussed, we will rather drop usage of GHA's matrix and treat all specific Linux distro builds as separate jobs, just as macOS is a separate job. |
Use Jinja for the same purpose. This allows for different Linux distributions to independently publish their artifacts when their own build and test was green. It also speeds up execution by not building all Docker images on every matrix iteration. Fixes edgedb/edgedb-pkg#4
Let's keep this open until we evaluate caching. |
Looks like this was accidentally closed. |
The strategy here should be to implement an action that automatically builds all images and pushes them to this repository's container registry. Consuming workflows would then refer to the ghcr.io image. |
Github does not support expressions in the Docker URI, so we explicitly unroll the build matrix into a bunch of steps gated by a conditional expression instead. This works, but the downside is that Github builds all docker images in every matrix iteration, effectively building images
n^2
times. All that without using any build cache. The result is that nightly builds easily spend more time in preparing the build images than actually building the packages.This can be fixed by pre-building all necessary docker images in a separate workflow step, preferably using some sort of build cache (see actions/cached-docker-build-push). The build steps would then use pushed images.
The text was updated successfully, but these errors were encountered: