diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ba49deec0a0704e8162bcf023ba9636206deb80e..f872d493a090191d5e57a823252ec92415208969 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -54,7 +54,13 @@ conan-el7-gcc93-x86: trigger: include: conan-el7-gcc93-x86/.gitlab-ci.yml strategy: depend - + +conan-el7-gcc114: + stage: triggers + trigger: + include: conan-el7-gcc114/.gitlab-ci.yml + strategy: depend + conan-el9-gcc114: stage: triggers trigger: diff --git a/README.md b/README.md index dbf208f93febb7c01e7f86ec3ef88d22ccc95f15..503abd087fb28dc5484ae78fb7e9205473e09f2a 100644 --- a/README.md +++ b/README.md @@ -17,13 +17,15 @@ All images include: | conan-el7-gcc48-x86 | CentOS 7 | i686 | gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44) | | conan-el7-gcc93 | CentOS 7 | x86_64 | gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2) | | conan-el7-gcc93-x86 | CentOS 7 | i686 | gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2) | +| conan-el7-gcc114 | CentOS 7 | x86_64 | gcc (conda-forge gcc 11.4.0-13) 11.4.0 | +| conan-el9-gcc114 | Rocky Linux 9 | x86_64 | gcc (conda-forge gcc 11.4.0-13) 11.4.0 | ## Build ### To build one image ``` -docker-compose -f conan-el6-gcc44\docker-compose.yml build +docker-compose -f conan-el6-gcc44/docker-compose.yml build ``` ### To build an image manually without docker-compose @@ -42,12 +44,12 @@ $ docker build --build-arg http_proxy --build-arg https_proxy --build-arg no_pro ### To launch one with docker-compose ``` -$ docker-compose run --rm conan-el6-gcc44 +$ docker-compose -f conan-el6-gcc44/docker-compose.yml run --rm conan-el6-gcc44 ``` ### To launch one x86 with docker-compose ``` -$ docker-compose run --rm conan-el6-gcc44-x86 +$ docker-compose -f conan-el6-gcc44-x86/docker-compose.yml run --rm conan-el6-gcc44-x86 ``` ### To launch one container without docker-compose diff --git a/conan-el7-gcc114/.gitlab-ci.yml b/conan-el7-gcc114/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..b5c9d21844e73eaf9bdefdb516a312f3847be648 --- /dev/null +++ b/conan-el7-gcc114/.gitlab-ci.yml @@ -0,0 +1,43 @@ +image: docker:latest +services: + - docker:dind + +variables: + NAME: conan-el7-gcc114 + CONTAINER_TEST_IMAGE: ${CI_REGISTRY_IMAGE}/${NAME}:$CI_COMMIT_REF_SLUG + CONTAINER_RELEASE_IMAGE: ${CI_REGISTRY_IMAGE}/${NAME}:latest + +stages: + - build + - test + - release + +before_script: + - echo "${CI_DEPLOY_PASSWORD}" | docker login ${CI_REGISTRY} -u ${CI_DEPLOY_USER} --password-stdin + + +build: + stage: build + script: + - docker build --pull -t ${CONTAINER_TEST_IMAGE} -f ${NAME}/Dockerfile . + - docker push ${CONTAINER_TEST_IMAGE} + +test: + stage: test + script: + - docker run --rm ${CONTAINER_TEST_IMAGE} cat /etc/centos-release | grep "CentOS Linux release 7" + - docker run --rm ${CONTAINER_TEST_IMAGE} uname -m | grep "x86_64" + - docker run --rm ${CONTAINER_TEST_IMAGE} gcc --version | grep "11.4.0" + - docker run --rm ${CONTAINER_TEST_IMAGE} cmake --version | grep "3.31.5" + - docker run --rm ${CONTAINER_TEST_IMAGE} git --version | grep "2.47.1" + - docker run --rm ${CONTAINER_TEST_IMAGE} python --version | grep "3.13.1" + - docker run --rm ${CONTAINER_TEST_IMAGE} conan --version | grep "2.12.1" + - docker run --rm ${CONTAINER_TEST_IMAGE} jq --version | grep "1.7.1" + - docker run --rm ${CONTAINER_TEST_IMAGE} yq --version | grep "3.4.3" + +release: + stage: release + script: + - docker pull ${CONTAINER_TEST_IMAGE} + - docker tag ${CONTAINER_TEST_IMAGE} ${CONTAINER_RELEASE_IMAGE} + - docker push ${CONTAINER_RELEASE_IMAGE} diff --git a/conan-el7-gcc114/Dockerfile b/conan-el7-gcc114/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..bad5d518edf221a6e88f6a595d53bdfa9baf8085 --- /dev/null +++ b/conan-el7-gcc114/Dockerfile @@ -0,0 +1,46 @@ +FROM centos:7 + +LABEL maintainer="Patrick Madela <patrick.madela@synchrotron-soleil.fr" + +ENV MAMBA_ROOT_PREFIX=/opt/micromamba +ENV PATH=${MAMBA_ROOT_PREFIX}/bin:$PATH + +# Configure micromamba environment +COPY conan-el7-gcc114/environment.yml /tmp/environment.yml + +RUN rm -rf /etc/localtime && ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime \ + # Fix Centos repo urls + && sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* \ + && sed -i 's|#\s*baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* \ + && yum update -y \ + && yum install -y curl bzip2 git \ + && yum clean all \ + # Add groups + && groupadd g1001 -g 1001 \ + && groupadd g1000 -g 1000 \ + && groupadd g2000 -g 2000 \ + # Creation of conan user + && useradd -ms /bin/bash conan -u 1000 -g 1001 -G 1000,2000,999 \ + # Add sudo for conan user + && printf "conan:conan" | chpasswd \ + && printf "conan ALL= NOPASSWD: ALL\\n" >> /etc/sudoers \ + # Install micromamba + && curl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -xvj bin/micromamba \ + # Install environment with micromamba + && micromamba create -y -f /tmp/environment.yml && \ + rm /tmp/environment.yml + +COPY environment /etc/environment +USER conan +WORKDIR /home/conan + +# Activate environment when launching command +ENTRYPOINT ["bash", "-c" ,"eval \"$(micromamba shell hook --shell bash)\" && micromamba activate conan-el7-gcc114 && \"$@\"", "-s"] + +# Define default shell and activate environment +SHELL ["/bin/bash", "-c"] +RUN echo 'eval "$(micromamba shell hook --shell=bash)"' >> ~/.bashrc && \ + echo 'micromamba activate conan-el7-gcc114' >> ~/.bashrc + +# Lauch interactive shell by default +CMD ["/bin/bash"] diff --git a/conan-el7-gcc114/docker-compose.yml b/conan-el7-gcc114/docker-compose.yml new file mode 100644 index 0000000000000000000000000000000000000000..665b0d913cbf96be55a49d60be3b61f6f17ce7f9 --- /dev/null +++ b/conan-el7-gcc114/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3.8" + +services: + conan-el7-gcc114: + build: + context: .. + dockerfile: conan-el7-gcc114/Dockerfile + args: + - http_proxy + - https_proxy + - no_proxy + image: "gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/conan-docker-tools/conan-el7-gcc114" + container_name: conan-el7-gcc114 + tty: true + environment: + - http_proxy + - https_proxy + - no_proxy diff --git a/conan-el7-gcc114/environment.yml b/conan-el7-gcc114/environment.yml new file mode 100644 index 0000000000000000000000000000000000000000..0ae9692069ce8ab7393a8143870456a3a417c025 --- /dev/null +++ b/conan-el7-gcc114/environment.yml @@ -0,0 +1,12 @@ +name: conan-el7-gcc114 +channels: +- conda-forge +dependencies: +- cmake=3.31.5 +- conan=2.12.1 +- git=2.47.1 +- jq=1.7.1 +- yq=3.4.3 +- gcc=11.4 +- gxx=11.4 +