-
-
Notifications
You must be signed in to change notification settings - Fork 473
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
Build Docker images on GH Actions #33099
Comments
Dependencies: #29784 |
Commit: |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:4
This gets me to:
(https://github.com/mkoeppe/sage/runs/4669053076?check_suite_focus=true) Help welcome |
Author: Matthias Koeppe, ... |
comment:5
The problem is clearly this fetch. The fetch occurs between ( Before attempting to fetch from
If I am correct this should evaluate to True. If so we should unshallow it. My preferred way would be to make sure that we get an unshallow repo by using by passing the correct arguments to the
This unshallowing will of course only work if the shallow clone has a remote configured that is not shallow, so if unshallowing fails we should probably first set the remote of the Hope this helps. p.s. this entire |
comment:6
Thanks. I'm trying if setting the |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:8
Ok, if the value of 5000 is not enough then 2147483647 = 231 - 1 is the largest value that git can still handle. |
comment:9
The error is cleared but it looks like it is building the version that comes with the latest published |
comment:10
I'm thinking that this is to be expected because according to: https://hub.docker.com/r/sagemath/sagemath-dev/tags?page=1 Julian (saraedum) only pushed sage 9.4 to the |
comment:11
Well that's the correct base but it should surely be building the current sources! |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:13
This whole patching business does not work:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:17
OK, with
|
comment:18
And now I'm running into what this warning warns about:
|
comment:20
Why is this whole patching business needed in the first place? Installing relevant system packages + compiling all other packages + building sage should be below the github action timelimit, so a fresh build without caching upon every push to develop should work. I would also suggest to use the docker action to build and publish the image: https://github.com/marketplace/actions/build-and-push-docker-images |
comment:21
I heard from Julian that right now the docker build process takes 8 hours on his computer due to #32998 . I am all for simplifying the docker file so that it fits within the github actions CI timeout. The max timeout for a single job on github actions is 6 hours so if #32998 is fixed this should be possible. If that is not enough, we could have multiple jobs for different parts of the build process split up according to different docker targets, pushing the different stages separately to dockerhub. Also right now the Dockerfile installs almost no system packages iirc, so it could also be sped up by using more of those instead of building everything ourselves. |
comment:22
what is the point here of using fewer system packages than possible? |
comment:23
Replying to @dimpase:
The only thing I know of why, is cause of this discussion #32998 comment:5 , which you are probably also aware of. Personally I don't care how many system packages we use, and only care about efficient and maintainable docker file. So I am all in favor of using more system packages, especially if that makes it easier to fix this issue. Sadly enough I don't have time myself to work on this right now aside from leaving some comments that are hopefully useful. |
comment:24
Replying to @tobiasdiez:
To my understanding, this is designed for providing very fast incremental builds so that all branches on trac can be tested with it. Of course for just building the Docker images for release tags, a much simpler workflow would do the job. |
comment:25
Replying to @koffie:
Yes, we know that of course from our existing portability CI on GH Actions. |
This comment has been minimized.
This comment has been minimized.
comment:27
Replying to @mkoeppe:
While I'm very much in favor of having a github action that runs on all branches, I'm not sure if docker is the right technology for it. Especially in view of the recent progress in the build script it should be easier to reuse partial build outputs from the develop branch also for other branches. For example, one could cache |
comment:28
Well, if the workflow does not use docker, then it does not create Docker images, which are what you need in #32749. |
comment:29
As the original author of these Dockerfile hacks… If we can retain the possibility to create a docker image for every branch that could be quite beneficial at it would allow people to play with code changes in a review on binder instead of having to rebuild locally. However, we never integrated a button for this in trac, even though all the other infrastructure for it exists. I am not sure if this is enough of a reason to repair these hacks. It's more important to have working docker images again than to have a feature that nobody is using anyway. |
As suggested in https://groups.google.com/g/sage-devel/c/jIwovtSXtdw/m/2HR5RraTCwAJ, we set up a GH Actions workflow for building Docker images, replacing the GitLab workflow.
This ticket is focused on replicating the features of the GitLab workflow, in particular the incremental build and the distinction of
sagemath
andsagemath-dev
builds.See also:
Depends on #29784
CC: @saraedum @koffie @dimpase @tobiasdiez
Component: docker
Author: Matthias Koeppe, ...
Branch/Commit: u/mkoeppe/build_docker_images_on_gh_actions @
a4f05e2
Issue created by migration from https://trac.sagemath.org/ticket/33099
The text was updated successfully, but these errors were encountered: