diff --git a/ci/deps/cmake.sh b/ci/deps/cmake.sh index 2214a5add9..a7a173de2b 100755 --- a/ci/deps/cmake.sh +++ b/ci/deps/cmake.sh @@ -4,12 +4,29 @@ set -exo pipefail if test $# -lt 1 then - echo "usage: ./$0 " + echo "usage: ./$0 " exit 1 fi cmake_version=$1 -cmake_tar_name=cmake-${cmake_version}-Linux-x86_64.tar.gz +arch=x86_64 + +if test $# -gt 1 +then + arch=$2 +fi + +if test "${arch}" = "arm64v8" +then + arch=aarch64 +fi + +if test "${arch}" = "amd64" +then + arch=x86_64 +fi + +cmake_tar_name=cmake-${cmake_version}-linux-$arch.tar.gz echo "${cmake_version}" echo "${cmake_tar_name}" diff --git a/ci/docker/ubuntu-20.04-gnu-openmpi-cpp.dockerfile b/ci/docker/ubuntu-20.04-gnu-openmpi-cpp.dockerfile index 20ae266e7d..4156a06167 100644 --- a/ci/docker/ubuntu-20.04-gnu-openmpi-cpp.dockerfile +++ b/ci/docker/ubuntu-20.04-gnu-openmpi-cpp.dockerfile @@ -51,8 +51,10 @@ RUN if test ${zoltan_enabled} -eq 1; then \ ENV CC=gcc \ CXX=g++ +ARG arch + COPY ./ci/deps/cmake.sh cmake.sh -RUN ./cmake.sh 3.23.4 +RUN ./cmake.sh 3.23.4 ${arch} ENV PATH=/cmake/bin/:$PATH ENV LESSCHARSET=utf-8 diff --git a/ci/docker/ubuntu-clang-cpp.dockerfile b/ci/docker/ubuntu-clang-cpp.dockerfile index 0436a57db9..d1c01de4e9 100644 --- a/ci/docker/ubuntu-clang-cpp.dockerfile +++ b/ci/docker/ubuntu-clang-cpp.dockerfile @@ -43,8 +43,10 @@ ENV CC=${compiler} \ COPY ./ci/deps/libunwind.sh libunwind.sh RUN ./libunwind.sh 1.6.2 +ARG arch + COPY ./ci/deps/cmake.sh cmake.sh -RUN ./cmake.sh 3.23.4 +RUN ./cmake.sh 3.23.4 ${arch} ENV PATH=/cmake/bin/:$PATH ENV LESSCHARSET=utf-8 diff --git a/ci/docker/ubuntu-gnu-cpp.dockerfile b/ci/docker/ubuntu-gnu-cpp.dockerfile index d32a4e7df6..75a380b808 100644 --- a/ci/docker/ubuntu-gnu-cpp.dockerfile +++ b/ci/docker/ubuntu-gnu-cpp.dockerfile @@ -56,8 +56,10 @@ RUN if test ${zoltan_enabled} -eq 1; then \ ENV CC=gcc \ CXX=g++ +ARG arch + COPY ./ci/deps/cmake.sh cmake.sh -RUN ./cmake.sh 3.23.4 +RUN ./cmake.sh 3.23.4 ${arch} ENV PATH=/cmake/bin/:$PATH ENV LESSCHARSET=utf-8 diff --git a/ci/docker/ubuntu-gnu-docs.dockerfile b/ci/docker/ubuntu-gnu-docs.dockerfile index e6417e8ccf..1434b6af1c 100644 --- a/ci/docker/ubuntu-gnu-docs.dockerfile +++ b/ci/docker/ubuntu-gnu-docs.dockerfile @@ -38,8 +38,10 @@ ENV MPI_EXTRA_FLAGS="" \ CXX=mpicxx \ PATH=/usr/lib/ccache/:$PATH +ARG arch + COPY ./ci/deps/cmake.sh cmake.sh -RUN ./cmake.sh 3.23.4 +RUN ./cmake.sh 3.23.4 ${arch} ENV PATH=/cmake/bin/:$PATH diff --git a/ci/docker/ubuntu-nvidia-cpp.dockerfile b/ci/docker/ubuntu-nvidia-cpp.dockerfile index 9a471129d2..c4e9335df8 100644 --- a/ci/docker/ubuntu-nvidia-cpp.dockerfile +++ b/ci/docker/ubuntu-nvidia-cpp.dockerfile @@ -40,8 +40,10 @@ RUN apt-get update -y && \ ENV CC=gcc \ CXX=g++ +ARG arch + COPY ./ci/deps/cmake.sh cmake.sh -RUN ./cmake.sh 3.23.4 +RUN ./cmake.sh 3.23.4 ${arch} ENV PATH=/cmake/bin/:$PATH ENV LESSCHARSET=utf-8 diff --git a/docker-compose.yml b/docker-compose.yml index 61a2a1186a..d02d516a16 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -63,7 +63,7 @@ # # Need verision >= 3.5 for the features in use -version: '3.5' +version: '3.8' # Named volumes must be predefined according the docker compose rules. Many # combinations have already been added, but if a needed configuration is missing @@ -95,6 +95,31 @@ volumes: amd64-alpine-icpc-icpc-cache: amd64-alpine-gcc-9-11.0.3-cache: amd64-alpine-gcc-9-11.2.0-cache: + arm64v8-ubuntu-18.04-clang-8-clang-8-cache: + arm64v8-ubuntu-18.04-clang-9-clang-9-cache: + arm64v8-ubuntu-20.04-clang-10-clang-10-cache: + arm64v8-ubuntu-22.04-clang-11-clang-11-cache: + arm64v8-ubuntu-18.04-gcc-8-gcc-8-cache: + arm64v8-ubuntu-20.04-gcc-9-gcc-9-cache: + arm64v8-ubuntu-20.04-gcc-10-gcc-10-cache: + arm64v8-ubuntu-22.04-gcc-12-gcc-12-cache: + arm64v8-ubuntu-18.04-icpx-icpx-cache: + arm64v8-ubuntu-18.04-icpc-icpc-cache: + arm64v8-ubuntu-20.04-gcc-9-11.0.3-cache: + arm64v8-ubuntu-20.04-gcc-9-11.2.0-cache: + arm64v8-alpine-clang-8-clang-8-cache: + arm64v8-alpine-clang-9-clang-9-cache: + arm64v8-alpine-clang-10-clang-10-cache: + arm64v8-alpine-clang-11-clang-11-cache: + arm64v8-alpine-clang-13-clang-13-cache: + arm64v8-alpine-gcc-8-gcc-8-cache: + arm64v8-alpine-gcc-9-gcc-9-cache: + arm64v8-alpine-gcc-10-gcc-10-cache: + arm64v8-alpine-gcc-12-gcc-12-cache: + arm64v8-alpine-icpx-icpx-cache: + arm64v8-alpine-icpc-icpc-cache: + arm64v8-alpine-gcc-9-11.0.3-cache: + arm64v8-alpine-gcc-9-11.2.0-cache: # Define basic rules for ccache used across multiple services. The beauty of # docker compose with cached volumes is that similarly configured builds will @@ -167,8 +192,7 @@ services: ulimits: &ulimits core: ${ULIMIT_CORE} environment: - <<: *ccache - <<: *vtopts + <<: [*ccache, *vtopts] volumes: &ubuntu-volumes - .:/vt:delegated - ${CACHE}${ARCH}-ubuntu-${UBUNTU}-${HOST_COMPILER}-${COMPILER}-cache:/build:delegated @@ -195,8 +219,7 @@ services: - ${REPO}:${ARCH}-ubuntu-${UBUNTU}-${HOST_COMPILER}-${COMPILER}-cpp ulimits: *ulimits environment: - <<: *ccache - <<: *vtopts + <<: [*ccache, *vtopts] volumes: *ubuntu-volumes command: &vt-build-test-clean-cpp-command > /bin/bash -c " @@ -222,8 +245,7 @@ services: - ${REPO}:${ARCH}-ubuntu-${UBUNTU}-${HOST_COMPILER}-${COMPILER}-cpp ulimits: *ulimits environment: - <<: *ccache - <<: *vtopts + <<: [*ccache, *vtopts] volumes: *ubuntu-volumes command: &vt-build-test-clean-noinstall-cpp-command > /bin/bash -c " @@ -252,8 +274,7 @@ services: - ${REPO}:${ARCH}-ubuntu-${UBUNTU}-${HOST_COMPILER}-${COMPILER}-cpp ulimits: *ulimits environment: - <<: *ccache - <<: *vtopts + <<: [*ccache, *vtopts] volumes: *ubuntu-volumes ############################################################################## @@ -274,8 +295,7 @@ services: - ${REPO}:${ARCH}-ubuntu-${UBUNTU}-${HOST_COMPILER}-${COMPILER}-openmpi-cpp ulimits: *ulimits environment: - <<: *ccache - <<: *vtopts + <<: [*ccache, *vtopts] OMPI_MCA_btl: "^vader" volumes: *ubuntu-volumes command: *vt-build-test-clean-cpp-command @@ -294,8 +314,7 @@ services: - ${REPO}:${ARCH}-ubuntu-${UBUNTU}-${HOST_COMPILER}-${COMPILER}-openmpi-cpp ulimits: *ulimits environment: - <<: *ccache - <<: *vtopts + <<: [*ccache, *vtopts] OMPI_MCA_btl: "^vader" volumes: *ubuntu-volumes @@ -309,14 +328,12 @@ services: target: build dockerfile: ci/docker/ubuntu-${COMPILER_TYPE}-cpp.dockerfile args: - <<: *default-args - <<: *vtopts + <<: [*default-args, *vtopts] cache_from: - ${REPO}:${ARCH}-ubuntu-${UBUNTU}-${HOST_COMPILER}-${COMPILER}-cpp ulimits: *ulimits environment: - <<: *ccache - <<: *vtopts + <<: [*ccache, *vtopts] volumes: *ubuntu-volumes command: &cpp-command > /bin/bash -c " @@ -405,8 +422,7 @@ services: - ${REPO}:${ARCH}-alpine-${HOST_COMPILER}-${COMPILER}-cpp ulimits: *ulimits environment: - <<: *ccache - <<: *vtopts + <<: [*ccache, *vtopts] volumes: &alpine-volumes - .:/vt:delegated - ${CACHE}${ARCH}-alpine-${HOST_COMPILER}-${COMPILER}-cache:/build:delegated @@ -426,7 +442,6 @@ services: - ${REPO}:${ARCH}-alpine-${HOST_COMPILER}-${COMPILER}-cpp ulimits: *ulimits environment: - <<: *ccache - <<: *vtopts + <<: [*ccache, *vtopts] volumes: *alpine-volumes command: *vt-build-test-clean-cpp-command