diff --git a/.gitlab-ci.d/images.yaml b/.gitlab-ci.d/images.yaml index 716e7253d..503a80594 100644 --- a/.gitlab-ci.d/images.yaml +++ b/.gitlab-ci.d/images.yaml @@ -1,109 +1,109 @@ .docker_build: image: "docker:20.10.21" stage: .pre services: - docker:20.10.21-dind variables: # Use TLS https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#tls-enabled DOCKER_HOST: tcp://docker:2376 DOCKER_TLS_CERTDIR: "/certs" before_script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY script: - cd test/ci/${IMAGE_NAME}/ - docker build --no-cache -t registry.gitlab.com/akantu/akantu/${IMAGE_NAME} . - docker push registry.gitlab.com/akantu/akantu/${IMAGE_NAME} rules: - changes: - test/ci/${IMAGE_NAME}/* # ------------------------------------------------------------------------------ .cache_build: variables: CCACHE_BASEDIR: ${CI_PROJECT_DIR}/ CCACHE_DIR: ${CI_PROJECT_DIR}/.ccache CCACHE_MAXSIZE: 1Gi cache: key: ${output}_${BUILD_TYPE} policy: pull-push paths: - .ccache/ - third-party/google-test - third-party/pybind11 before_script: - ccache --zero-stats || true after_script: - ccache --show-stats || true # ------------------------------------------------------------------------------ .image_debian_bullseye: image: registry.gitlab.com/akantu/akantu/debian:bullseye .image_ubuntu_lts: image: registry.gitlab.com/akantu/akantu/ubuntu:lts .image_manylinux: - image: registry.gitlab.com/akantu/akantu/manylinux:2010_x86_64 + image: registry.gitlab.com/akantu/akantu/manylinux:2014_x86_64 # ------------------------------------------------------------------------------ .compiler_gcc: variables: CC: /usr/lib/ccache/gcc CXX: /usr/lib/ccache/g++ FC: gfortran GCOV_EXECUTABLE: gcov .compiler_clang: variables: CC: /usr/lib/ccache/clang CXX: /usr/lib/ccache/clang++ FC: gfortran GCOV_EXECUTABLE: llvm-cov gcov .build_coverage: variables: TEST_EXAMPLES: "FALSE" BUILD_TYPE: "Coverage" .build_release: variables: TEST_EXAMPLES: "TRUE" BUILD_TYPE: "Release" .build_valgrind: variables: TEST_EXAMPLES: "FALSE" BUILD_TYPE: "Valgrind" # ------------------------------------------------------------------------------ .debian_bullseye_gcc: variables: output: debian_bullseye_gcc extends: - .compiler_gcc - .image_debian_bullseye - .cache_build .debian_bullseye_clang: variables: output: debian_bullseye_clang extends: - .compiler_clang - .image_debian_bullseye - .cache_build .ubuntu_lts_gcc: variables: output: ubuntu_lts_gcc extends: - .compiler_gcc - .image_ubuntu_lts - .cache_build -.manylinux_2010_x64_gcc: +.manylinux_2014_x64_gcc: variables: - output: manylinux_2010_x64_gcc + output: manylinux_2014_x64_gcc extends: - .compiler_gcc - .image_manylinux - .cache_build diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 44bc729f2..fec923ec1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,375 +1,375 @@ # yaml-language-server: $schema=gitlab-ci # yaml-language-server: $format.enable=false stages: - version - configure - build_libs - build_tests - test - code_quality - deploy include: - local: '.gitlab-ci.d/*.yaml' + local: ".gitlab-ci.d/*.yaml" #------------------------------------------------------------------------------- # Rebuilding the docker images if needed #------------------------------------------------------------------------------- docker build:debian-bullseye: variables: IMAGE_NAME: debian:bullseye extends: .docker_build docker build:ubuntu-lts: variables: IMAGE_NAME: ubuntu:lts extends: .docker_build docker build:manylinux: variables: - IMAGE_NAME: manylinux:2010_x86_64 + IMAGE_NAME: manylinux:2014_x86_64 extends: .docker_build version_determination: stage: version image: python:latest variables: GIT_STRATEGY: fetch GIT_DEPTH: 500 script: - python3 cmake/semver.py > VERSION - cat VERSION artifacts: when: on_success paths: - VERSION expire_in: 1day # ------------------------------------------------------------------------------ # Debian bullseye compiled with GCC # ------------------------------------------------------------------------------ configure:debian_bullseye_gcc: extends: - .debian_bullseye_gcc - .build_coverage - .configure needs: - version_determination - + build:debian_bullseye_gcc: extends: - .debian_bullseye_gcc - .build_coverage - .build_all needs: - job: configure:debian_bullseye_gcc test:debian_bullseye_gcc: extends: - .debian_bullseye_gcc - .build_coverage - .tests coverage: '/^lines: (\d+\.\d+\%)/' needs: - job: build:debian_bullseye_gcc # ------------------------------------------------------------------------------ # Debian bullseye compiled with Clang # ------------------------------------------------------------------------------ configure:debian_bullseye_clang: extends: - .debian_bullseye_clang - .build_coverage - .configure needs: - version_determination build:debian_bullseye_clang: extends: - .debian_bullseye_clang - .build_coverage - .build_all needs: - job: configure:debian_bullseye_clang test:debian_bullseye_clang: extends: - .debian_bullseye_clang - .build_coverage - .tests coverage: '/^lines: (\d+\.\d+\%)/' needs: - job: build:debian_bullseye_clang # ------------------------------------------------------------------------------ # Ubuntu LTS compiled with GCC # ------------------------------------------------------------------------------ configure:ubuntu_lts_gcc: extends: - .ubuntu_lts_gcc - .build_release - .configure needs: - version_determination build:ubuntu_lts_gcc: extends: - .ubuntu_lts_gcc - .build_release - .build_all needs: - job: configure:ubuntu_lts_gcc test:ubuntu_lts_gcc: extends: - .ubuntu_lts_gcc - .build_release - .tests needs: - job: build:ubuntu_lts_gcc # ------------------------------------------------------------------------------ # Debian bullseye compiled with GCC tested with valgrind # ------------------------------------------------------------------------------ configure:ubuntu_lts_gcc_valgrind: extends: - .ubuntu_lts_gcc - .build_valgrind - .configure needs: - version_determination build:ubuntu_lts_gcc_valgrind: extends: - .ubuntu_lts_gcc - .build_valgrind - .build_all needs: - job: configure:ubuntu_lts_gcc_valgrind test:ubuntu_lts_gcc_valgrind: extends: - .ubuntu_lts_gcc - .build_valgrind - .tests needs: - job: build:ubuntu_lts_gcc_valgrind - + # ------------------------------------------------------------------------------ # Manylinux to build python packages # ------------------------------------------------------------------------------ configure:python_package: stage: configure extends: - - .manylinux_2010_x64_gcc + - .manylinux_2014_x64_gcc - .build_release script: # create the build folder - cmake -E make_directory build - cd build # Variables for cmake - export CMAKE_PREFIX_PATH=/softs/view - export BOOST_ROOT=/softs/view # Configure in sequential and without tests or examples - cmake -DAKANTU_COHESIVE_ELEMENT:BOOL=TRUE - -DAKANTU_IMPLICIT:BOOL=TRUE - -DAKANTU_PARALLEL:BOOL=FALSE - -DAKANTU_STRUCTURAL_MECHANICS:BOOL=TRUE - -DAKANTU_HEAT_TRANSFER:BOOL=TRUE - -DAKANTU_DAMAGE_NON_LOCAL:BOOL=TRUE - -DAKANTU_PHASE_FIELD:BOOL=TRUE - -DAKANTU_PYTHON_INTERFACE:BOOL=FALSE - -DAKANTU_CONTACT_MECHANICS:BOOL=TRUE - -DAKANTU_EXAMPLES:BOOL=FALSE - -DAKANTU_TESTS:BOOL=FALSE - -DMUMPS_DETECT_DEBUG:BOOL=TRUE - -DCMAKE_INSTALL_PREFIX:PATH=${CI_PROJECT_DIR}/install - -DCMAKE_BUILD_TYPE:STRING=${BUILD_TYPE} .. + -DAKANTU_IMPLICIT:BOOL=TRUE + -DAKANTU_PARALLEL:BOOL=FALSE + -DAKANTU_STRUCTURAL_MECHANICS:BOOL=TRUE + -DAKANTU_HEAT_TRANSFER:BOOL=TRUE + -DAKANTU_DAMAGE_NON_LOCAL:BOOL=TRUE + -DAKANTU_PHASE_FIELD:BOOL=TRUE + -DAKANTU_PYTHON_INTERFACE:BOOL=FALSE + -DAKANTU_CONTACT_MECHANICS:BOOL=TRUE + -DAKANTU_EXAMPLES:BOOL=FALSE + -DAKANTU_TESTS:BOOL=FALSE + -DMUMPS_DETECT_DEBUG:BOOL=TRUE + -DCMAKE_INSTALL_PREFIX:PATH=${CI_PROJECT_DIR}/install + -DCMAKE_BUILD_TYPE:STRING=${BUILD_TYPE} .. needs: - version_determination artifacts: when: on_success paths: - build/ - VERSION expire_in: 10h build_akantu:python_package: extends: - .build_libs - .build_release - - .manylinux_2010_x64_gcc + - .manylinux_2014_x64_gcc script: - cmake --build build --target akantu -j1 - cmake --install build artifacts: when: on_success paths: - install/ - VERSION expire_in: 10h needs: - job: configure:python_package build_pip:python_package: stage: build_tests extends: - .build_release - - .manylinux_2010_x64_gcc + - .manylinux_2014_x64_gcc script: - export CI_AKANTU_INSTALL_PREFIX=${CI_PROJECT_DIR}/install - export CMAKE_PREFIX_PATH=/softs/view:${CI_AKANTU_INSTALL_PREFIX} - test/ci/make-wheels.sh needs: - job: build_akantu:python_package artifacts: when: on_success paths: - wheelhouse expire_in: 10h test:python_package: stage: test image: python:3.8 needs: - job: build_pip:python_package script: - pip install numpy scipy - pip install akantu --no-index --find-links=${PWD}/wheelhouse - python -c "import akantu" - cd examples/python/dynamics/ - apt update && apt install -y gmsh - gmsh -2 bar.geo - python ./dynamics.py package:python_gitlab: stage: deploy image: python:latest script: - pip install twine - TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token - python3 -m twine upload - --repository-url https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/pypi - wheelhouse/* + python3 -m twine upload + --repository-url https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/pypi + wheelhouse/* needs: - job: build_pip:python_package - job: test:python_package only: - master package:python_pypi: stage: deploy image: python:latest script: - pip install twine - TWINE_PASSWORD=${PYPI_TOKEN} TWINE_USERNAME=__token__ - python3 -m twine upload --verbose wheelhouse/* + python3 -m twine upload --verbose wheelhouse/* needs: - job: build_pip:python_package - job: test:python_package only: - tags # ------------------------------------------------------------------------------ # Code Quality # ------------------------------------------------------------------------------ cq:code_quality: extends: - .code_quality_gitlab_template needs: - job: build:debian_bullseye_clang artifacts: paths: - gl-code-quality-report.json cq:clang_tidy: extends: - .clang_tools script: - test/ci/scripts/cq - -x third-party - -x extra-packages - -x pybind11 - -x test - -x build - ${FILE_LIST_ARG} - clang-tidy - -p ${CI_PROJECT_DIR}/build > gl-clang-tidy-report.json + -x third-party + -x extra-packages + -x pybind11 + -x test + -x build + ${FILE_LIST_ARG} + clang-tidy + -p ${CI_PROJECT_DIR}/build > gl-clang-tidy-report.json needs: - job: build:debian_bullseye_clang artifacts: paths: - gl-clang-tidy-report.json cq:clang_format: extends: - .clang_tools script: - test/ci/scripts/cq - -x third-party - -x extra-packages - -x build - clang-format - -p ${CI_PROJECT_DIR}/build > gl-clang-format-report.json + -x third-party + -x extra-packages + -x build + clang-format + -p ${CI_PROJECT_DIR}/build > gl-clang-format-report.json needs: - job: build:debian_bullseye_clang artifacts: paths: - gl-clang-format-report.json cq:compilation_warnings: stage: code_quality image: python:latest script: - pip install warning-parser termcolor Click - ls build-*-err.log - test/ci/scripts/cq - -x third-party - -x extra-packages - -x build - warnings - build-*-err.log > gl-warnings-report.json + -x third-party + -x extra-packages + -x build + warnings + build-*-err.log > gl-warnings-report.json needs: - job: build:debian_bullseye_clang - job: build:debian_bullseye_gcc - job: build:ubuntu_lts_gcc artifacts: paths: - gl-warnings-report.json cq:merge_code_quality: stage: deploy extends: - .debian_bullseye_clang script: - jq -Ms '[.[][]]' gl-*-report.json | tee gl-codequality.json | jq -C needs: - job: cq:code_quality - job: cq:clang_tidy - job: cq:clang_format - job: cq:compilation_warnings artifacts: reports: codequality: [gl-codequality.json] # ------------------------------------------------------------------------------ # Deploy pages # ------------------------------------------------------------------------------ pages: stage: deploy extends: - .debian_bullseye_gcc script: - cd build - cmake -DAKANTU_DOCUMENTATION=ON .. - cmake --build . -t sphinx-doc - mv doc/dev-doc/html ../public needs: - job: build:debian_bullseye_gcc artifacts: paths: - public only: - master diff --git a/pyproject.toml b/pyproject.toml index eb75010ba..640dee3d3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,10 +1,11 @@ [build-system] requires = [ "setuptools>=42", "wheel", "pybind11~=2.6.0", "scikit-build>=0.7.0", "cmake>=3.5.3", "ninja", + "packaging<22" ] build-backend = "setuptools.build_meta" diff --git a/test/ci/make-wheels.sh b/test/ci/make-wheels.sh index 018cd8bca..3fa619696 100755 --- a/test/ci/make-wheels.sh +++ b/test/ci/make-wheels.sh @@ -1,37 +1,37 @@ #!/usr/bin/env bash set -eo pipefail set +x -export PLAT=manylinux2010_x86_64 +export PLAT=manylinux2014_x86_64 source /etc/profile function repair_wheel { wheel="$1" if ! auditwheel show "$wheel"; then echo "Skipping non-platform wheel $wheel" else auditwheel repair "$wheel" --plat "$PLAT" fi } # Compile wheels for PYBIN in /opt/python/cp3*/bin; do if "${PYBIN}/python" --version | grep -q 3.11; then echo "Skip python version 3.11" continue fi ccache --zero-stats echo "${PYBIN}/pip" wheel . --no-deps -w dist/ "${PYBIN}/pip" wheel . --no-deps -w dist/ ccache --show-stats done export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${CI_AKANTU_INSTALL_PREFIX}/lib64 # Bundle external shared libraries into the wheels for whl in dist/*.whl; do echo repair_wheel "$whl" repair_wheel "$whl" done diff --git a/test/ci/manylinux:2010_x86_64/Toolchain.cmake b/test/ci/manylinux:2010_x86_64/Toolchain.cmake deleted file mode 100644 index 73776cac8..000000000 --- a/test/ci/manylinux:2010_x86_64/Toolchain.cmake +++ /dev/null @@ -1,12 +0,0 @@ -set(CMAKE_SYSTEM_NAME Linux) -set(CMAKE_CROSSCOMPILING FALSE) -set(CMAKE_SYSTEM_VERSION 1) -set(CMAKE_SYSTEM_PROCESSOR x86_64) - -set(MANYLINUX2010 TRUE) - -set(CMAKE_CXX_COMPILER_LAUNCHER /usr/bin/ccache) -set(CMAKE_C_COMPILER /opt/rh/devtoolset-8/root/usr/bin/gcc) -set(CMAKE_CXX_COMPILER /opt/rh/devtoolset-8/root/usr/bin/g++) -set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER}) -set(CMAKE_Fortran_COMPILER /opt/rh/devtoolset-8/root/usr/bin/gfortran) diff --git a/test/ci/manylinux:2010_x86_64/packages.yaml b/test/ci/manylinux:2010_x86_64/packages.yaml deleted file mode 100644 index cbca89528..000000000 --- a/test/ci/manylinux:2010_x86_64/packages.yaml +++ /dev/null @@ -1,84 +0,0 @@ -packages: - all: - target: [x86_64] - gcc: - externals: - - spec: gcc@8.3.1 languages=c,c++,fortran - prefix: /opt/rh/devtoolset-8/root/usr - extra_attributes: - compilers: - c: /opt/rh/devtoolset-8/root/usr/bin/gcc - cxx: /opt/rh/devtoolset-8/root/usr/bin/x86_64-redhat-linux-g++ - fortran: /opt/rh/devtoolset-8/root/usr/bin/gfortran - git: - externals: - - spec: git@2.30.0~tcltk - prefix: /usr/local - cmake: - externals: - - spec: cmake@2.8.12.2 - prefix: /usr - tar: - externals: - - spec: tar@1.23 - prefix: / - m4: - externals: - - spec: m4@1.4.13 - prefix: /usr - diffutils: - externals: - - spec: diffutils@2.8.1 - prefix: /usr - cpio: - externals: - - spec: cpio@2.10 - prefix: / - gmake: - externals: - - spec: gmake@3.81 - prefix: /usr - python: - externals: - - spec: python@2.6.6+bz2+ctypes+dbm~lzma+nis+pyexpat+readline+sqlite3+ssl~tix~tkinter+uuid+zlib - prefix: /usr - libtool: - externals: - - spec: libtool@2.4.6 - prefix: /usr/local - findutils: - externals: - - spec: findutils@4.4.2 - prefix: /usr - openssl: - externals: - - spec: openssl@1.0.1e-fips - prefix: /usr - bison: - externals: - - spec: bison@2.4.1 - prefix: /usr - autoconf: - externals: - - spec: autoconf@2.69 - prefix: /usr/local - - spec: autoconf@2.63 - prefix: /usr - texinfo: - externals: - - spec: texinfo@4.13 - prefix: /usr - automake: - externals: - - spec: automake@1.16.2 - prefix: /usr/local - - spec: automake@1.11.1 - prefix: /usr - bash: - externals: - - spec: bash@4.1.2 - prefix: / - pkg-config: - externals: - - spec: pkg-config@0.23 - prefix: /usr diff --git a/test/ci/manylinux:2010_x86_64/spack.yaml b/test/ci/manylinux:2010_x86_64/spack.yaml deleted file mode 100644 index a4df41ea0..000000000 --- a/test/ci/manylinux:2010_x86_64/spack.yaml +++ /dev/null @@ -1,33 +0,0 @@ -spack: - compilers: - - compiler: - paths: - cc: /opt/rh/devtoolset-8/root/usr/bin/gcc - cxx: /opt/rh/devtoolset-8/root/usr/bin/g++ - f77: /opt/rh/devtoolset-8/root/usr/bin/gfortran - fc: /opt/rh/devtoolset-8/root/usr/bin/gfortran - operating_system: centos6 - target: x86_64 - modules: [] - environment: - set: - LD_LIBRARY_PATH: /usr/local/lib - extra_rpaths: [] - flags: {} - spec: gcc@8.3.1 - - include: - - /softs/spack/etc/spack/packages.yaml - - config: - install_tree: /softs/software - - specs: - - cmake@3.18.2 ~ncurses ~openssl - - zlib - - boost ~atomic ~chrono ~clanglibcpp ~container ~context ~coroutine ~date_time ~debug ~exception ~fiber ~filesystem ~graph ~icu~iostreams ~locale ~log ~math ~mpi ~multithreaded ~numpy ~pic ~program_options ~python ~random ~regex ~serialization ~shared ~signals ~singlethreaded ~system ~taggedlayout ~test ~thread ~timer ~wave - - openblas +pic - - mumps ~mpi ~complex ~float - concretization: together - - view: /softs/view diff --git a/test/ci/manylinux:2010_x86_64/Dockerfile b/test/ci/manylinux:2014_x86_64/Dockerfile similarity index 94% rename from test/ci/manylinux:2010_x86_64/Dockerfile rename to test/ci/manylinux:2014_x86_64/Dockerfile index 3fcd933ce..309e92c98 100644 --- a/test/ci/manylinux:2010_x86_64/Dockerfile +++ b/test/ci/manylinux:2014_x86_64/Dockerfile @@ -1,76 +1,76 @@ -FROM quay.io/pypa/manylinux2010_x86_64 as builder +FROM quay.io/pypa/manylinux2014_x86_64 as builder MAINTAINER Nicolas Richart ENV LANG en_US.UTF-8 -RUN yum install -y xz zlib-devel +RUN yum install -y xz zlib-devel openssl-devel # What we want to install and how we want to install it # is specified in a manifest file (spack.yaml) RUN mkdir -p /softs/spack-environment COPY spack.yaml /softs/spack-environment RUN adduser -u 1000 -s /bin/false app RUN mkdir -p /softs && chown -R app:app /softs USER app -RUN cd /softs && git clone https://github.com/spack/spack.git -b v0.16.3 +RUN cd /softs && git clone https://github.com/spack/spack.git -b v0.19.0 RUN cd /softs && git clone https://gitlab.com/epfl-lsms/spack-packages.git COPY packages.yaml /softs/spack/etc/spack COPY repos.yaml /softs/spack/etc/spack # Install the software, remove unnecessary deps RUN /opt/python/cp36-cp36m/bin/python /softs/spack/bin/spack -e /softs/spack-environment install && \ /opt/python/cp36-cp36m/bin/python /softs/spack/bin/spack gc -y # Strip all the binaries RUN find -L /softs/view/* -type f -exec readlink -f '{}' \; | \ xargs file -i | \ grep 'charset=binary' | \ grep 'x-executable\|x-archive\|x-sharedlib' | \ awk -F: '{print $1}' | xargs strip -s USER root # Modifications to the environment that are necessary to run RUN cd /softs/spack-environment && \ /opt/python/cp36-cp36m/bin/python /softs/spack/bin/spack env activate --sh -d . >> /etc/profile.d/z10_spack_environment.sh # Bare OS image to run the installed executables -FROM quay.io/pypa/manylinux2010_x86_64 +FROM quay.io/pypa/manylinux2014_x86_64 RUN yum install -y xz zlib-devel ccache RUN adduser -u 1000 -s /bin/false app COPY --from=builder /softs/spack /softs/spack COPY --from=builder /softs/spack-environment /softs/spack-environment COPY --from=builder /softs/software /softs/software COPY --from=builder /softs/view /softs/view COPY --from=builder /etc/profile.d/z10_spack_environment.sh /etc/profile.d/z10_spack_environment.sh RUN chown -R app:app /softs RUN mkdir -p /build && chown app:app /build ENV CROSS_ROOT /opt/rh/devtoolset-8/root/usr/bin ENV AS=${CROSS_ROOT}/as \ AR=${CROSS_ROOT}/ar \ CC=${CROSS_ROOT}/gcc \ CPP=${CROSS_ROOT}/cpp \ CXX=${CROSS_ROOT}/g++ \ LD=${CROSS_ROOT}/ld \ FC=${CROSS_ROOT}/gfortran \ CMAKE_PREFIX_PATH=/soft/view COPY install-pip.sh /build RUN /build/install-pip.sh COPY Toolchain.cmake ${CROSS_ROOT}/../lib/ ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/../lib/Toolchain.cmake USER app #ENTRYPOINT ["/bin/bash", "--rcfile", "/etc/profile", "-l"] diff --git a/test/ci/manylinux:2014_x86_64/Toolchain.cmake b/test/ci/manylinux:2014_x86_64/Toolchain.cmake new file mode 100644 index 000000000..ede101664 --- /dev/null +++ b/test/ci/manylinux:2014_x86_64/Toolchain.cmake @@ -0,0 +1,12 @@ +set(CMAKE_SYSTEM_NAME Linux) +set(CMAKE_CROSSCOMPILING FALSE) +set(CMAKE_SYSTEM_VERSION 1) +set(CMAKE_SYSTEM_PROCESSOR x86_64) + +set(MANYLINUX2014 TRUE) + +set(CMAKE_CXX_COMPILER_LAUNCHER /usr/bin/ccache) +set(CMAKE_C_COMPILER /opt/rh/devtoolset-10/root/usr/bin/gcc) +set(CMAKE_CXX_COMPILER /opt/rh/devtoolset-10/root/usr/bin/g++) +set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER}) +set(CMAKE_Fortran_COMPILER /opt/rh/devtoolset-10/root/usr/bin/gfortran) diff --git a/test/ci/manylinux:2010_x86_64/compilers.yaml b/test/ci/manylinux:2014_x86_64/compilers.yaml similarity index 100% rename from test/ci/manylinux:2010_x86_64/compilers.yaml rename to test/ci/manylinux:2014_x86_64/compilers.yaml diff --git a/test/ci/manylinux:2010_x86_64/install-pip.sh b/test/ci/manylinux:2014_x86_64/install-pip.sh similarity index 77% rename from test/ci/manylinux:2010_x86_64/install-pip.sh rename to test/ci/manylinux:2014_x86_64/install-pip.sh index 9b8e9e1d1..0c7855545 100755 --- a/test/ci/manylinux:2010_x86_64/install-pip.sh +++ b/test/ci/manylinux:2014_x86_64/install-pip.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -euo pipefail -for PIP in /opt/python/*/bin/pip; do +for PIP in /opt/python/cp*/bin/pip; do $PIP install --disable-pip-version-check --upgrade pip $PIP install scikit-build==0.8.1 done diff --git a/test/ci/manylinux:2014_x86_64/packages.yaml b/test/ci/manylinux:2014_x86_64/packages.yaml new file mode 100644 index 000000000..6d48b08b3 --- /dev/null +++ b/test/ci/manylinux:2014_x86_64/packages.yaml @@ -0,0 +1,16 @@ +packages: + all: + target: [x86_64] + gcc: + externals: + - spec: gcc@10.2.1 languages=c,c++,fortran + prefix: /opt/rh/devtoolset-10/root/usr + extra_attributes: + compilers: + c: /opt/rh/devtoolset-10/root/usr/bin/gcc + cxx: /opt/rh/devtoolset-10/root/usr/bin/x86_64-redhat-linux-g++ + fortran: /opt/rh/devtoolset-10/root/usr/bin/gfortran + openssl: + externals: + - spec: openssl@1.0.2k + prefix: /usr diff --git a/test/ci/manylinux:2010_x86_64/repos.yaml b/test/ci/manylinux:2014_x86_64/repos.yaml similarity index 100% rename from test/ci/manylinux:2010_x86_64/repos.yaml rename to test/ci/manylinux:2014_x86_64/repos.yaml diff --git a/test/ci/manylinux:2014_x86_64/spack.yaml b/test/ci/manylinux:2014_x86_64/spack.yaml new file mode 100644 index 000000000..571305786 --- /dev/null +++ b/test/ci/manylinux:2014_x86_64/spack.yaml @@ -0,0 +1,33 @@ +spack: + compilers: + - compiler: + paths: + cc: /opt/rh/devtoolset-10/root/usr/bin/gcc + cxx: /opt/rh/devtoolset-10/root/usr/bin/g++ + f77: /opt/rh/devtoolset-10/root/usr/bin/gfortran + fc: /opt/rh/devtoolset-10/root/usr/bin/gfortran + operating_system: centos7 + target: x86_64 + modules: [] + environment: + set: + LD_LIBRARY_PATH: /usr/local/lib + extra_rpaths: [] + flags: {} + spec: gcc@10.2.1 + + include: + - /softs/spack/etc/spack/packages.yaml + + config: + install_tree: /softs/software + + specs: + - cmake@3.18.2 ~ncurses + - zlib + - boost ~atomic ~chrono ~clanglibcpp ~container ~context ~coroutine ~date_time ~debug ~exception ~fiber ~filesystem ~graph ~icu~iostreams ~locale ~log ~math ~mpi ~multithreaded ~numpy ~pic ~program_options ~python ~random ~regex ~serialization ~shared ~signals ~singlethreaded ~system ~taggedlayout ~test ~thread ~timer ~wave + - openblas +pic + - mumps ~mpi ~complex ~float + view: /softs/view + concretizer: + unify: true