fix docker builds/remove extra builds/add ci builds#11621
fix docker builds/remove extra builds/add ci builds#11621tgamblin merged 4 commits intospack:developfrom
Conversation
scottwittenburg
left a comment
There was a problem hiding this comment.
I didn't try building with these, but just compared your new stuff with what we had before. It looks good to me.
Your comment in the description about how long it takes to build llvm made me wonder if we should find a way to get the llvm binary pushed into the mirror (by hook or by crook) sooner rather than later. My branch (from #11612) could do it fairly easily, let me know if you think that makes sense.
|
@opadron I noticed that my PR (#11612 ) has the same Travis CI issue as this one, it's forever stuck in "Waiting for status to be reported". However, other PRs seem to be getting tested ok. Do you have any idea what's going on there? I haven't looked into yet, but I will soon, assuming you don't already know. |
|
@tgamblin PTAL. A few questions:
Would like to know what you think. |
|
|
||
| __revparse_head() { | ||
| head="`git -C /spack rev-parse $@ HEAD 2>/dev/null`" | ||
| head="`git -C "$SPACK_ROOT" rev-parse $@ HEAD 2>/dev/null`" |
There was a problem hiding this comment.
Instead of fancy quote handlings I am a big fan of proper variable notations, if that helps: ${SPACK_ROOT}
| head="`git -C "$SPACK_ROOT" rev-parse $@ HEAD 2>/dev/null`" | |
| head="$(git -C ${SPACK_ROOT} rev-parse $@ HEAD 2>/dev/null)" |
There was a problem hiding this comment.
The original syntax was chosen for POSIX compliance.
There was a problem hiding this comment.
oh, didn't know that syntax breaks it. good to know
There was a problem hiding this comment.
I'm confused about why @ax3l's suggestion isn't POSIX compliant. I agree we need quotes for this. But the use of $() is POSIX-compliant and, honestly, preferred over un-nestable backticks.
|
@opadron please rebase to fix the merge conflict :) |
d39e965 to
b3526a4
Compare
|
@opadron CI says: |
tgamblin
left a comment
There was a problem hiding this comment.
This is good for now and it's a huge improvement over the previous set of scripts. I'm going to go ahead and merge it.
That said, I do think we should soon move to something like what @ax3l suggests for the naming scheme.
The table above is complicated and the special case is annoying. It would be more intuitive to just do FROM spack/centos7, FROM spack/ubuntu-xenial, FROM spack/ubuntu-xenial:0.12, etc. I think that scheme ultimately makes more sense to users, too. Added bonux: it also make it easier to set up automatic DockerHub integration and just let DockerHub build the images, and in that configuration the Dockerfile from each distro-specific repo would be automatically associated with the image on DockerHub, so we would get some points for reproducibility there. The fact that the Dockerfiles are still stored in the Spack repo is, I think, confusing to people who are used to the usual single-repo-with-Dockerfile convention.
|
@opadron there seam to be some hickups left in CI: https://travis-ci.org/spack/spack/jobs/561513871 |
|
@opadron: I created an example repo for centos6 on DockerHub. Seems like Dockerhub itself can do the container builds in response to GitHub, and all we really have to do is point to the centos6 Dockerfile. We can automatically add versions to the Centos6 image according to tags on the Spack repo. This seems like a good option if we don't want to fight with Travis, esp. since it automates the tagging. |
|
👍 Just as a side note: singularity hub operates the same way, even exclusively. |
|
Build on that is done and the Dockerhub page already looks better: And it took a few min to set up. @opadron: let's use this. Can you set up some like this for Note: I've done this for |
* fix docker builds/remove extra builds/add ci builds * preinstall vim in CI builder images * simplify & streamline docker resources * restore os-container-mapping.yaml file
Fixes several issues that prevented the docker image builds from completing. Also, removes and simplifies much of the current docker offerings.
Removed Images
spack/ubuntuspack/scilinuxspack/opensusespack/fedoraspack/centosspack/archlinuxNow, all images meant for general use are under the single
spack/spackimage name, with tags to differentiate between versions of Spack and OS. In addition, this PR integrates work from @scottwittenburg that brings the docker images we use for our Gitlab CI process into the Spack repo. These images are under thespack/ciname.Added Images and Tags
The tags follow the general format
{SPACK_VERSION}-${OS_NAME_AND_VERSION}. Aliasing tags are included so thatSPACK_VERSIONand/orOS_NAME_AND_VERSIONcan be omitted. The default version of Spack is whatever is the "latest" version at the time, and the default OS + version is "centos-7". Note that per Docker tagging standards, the taglatestis used for the case where both are omitted, as it is the default tag used when none is provided. This is a special case, and there is no other corresponding tag as in e.g.:spack/spack:latest-ubuntu-18.04; such a tag is simply spelledspack/spack:ubuntu-18.04.spack/ci:centos-7CI image with the latest version of Spack on centos 7.spack/ci:ubuntu-18.04CI image with the latest version of Spack on ubuntu-18.04.Related to-do items.
spack --versionand assumes that we are always building using the "latest" version of Spack. Is this behavior enough?Finish S3 work (S3 upload and download #11117) and start populating the public mirror with binary packages.I expect this step to be necessary because it takes a very long time to build e.g.: llvm in a docker container (for the centos CI image); far longer than I expect travis to run before timing out. Once binary packages become available, this issue should go away.EDIT: This should no longer be necessary, since we have eliminated the CI images in favor of "bootstrapping" compilers as part of the CI process.EDIT: Added Travis todo item.