diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5f0f96a3c726323a9fd105c39671d38d8273f395..156bb5533d79aa9559e809bfafaa90bb028dead7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -19,7 +19,7 @@ ## # Templates for ci jobs - test cdash -# It defines workflow rules, templates to create docker images, to configure, build siconos and so on. +# It defines workflow rules, templates to create docker images, to configure, build hysop and so on. include: - ci/ci-templates.yml @@ -49,7 +49,7 @@ ubuntu:gpu-nvidia:docker-build: extends: .docker-build tags: - lmap - - cpu + - gpu rules: - if: $CI_COMMIT_MESSAGE =~ /\[docker-build\]/ - if: $CI_COMMIT_TAG @@ -77,7 +77,7 @@ ubuntu:gpu-nvidia-user:docker-build: extends: .docker-build tags: - lmap - - cpu + - gpu rules: - if: $CI_COMMIT_MESSAGE =~ /\[docker-build\]/ - if: $CI_COMMIT_TAG @@ -130,8 +130,9 @@ examples:ci-cpu-intel: docker:hysop:cpu-intel: variables: - DOCKER_TARGET: hysop_cpu_intel IMAGE_NAME: hysop_cpu_intel + RESULT_NAME: $CI_REGISTRY/particle_methods/hysop_cpu_intel + DOCKER_TARGET: hysop_cpu_intel extends: - .hysop-docker-hysop - .lmap-cpu @@ -144,7 +145,7 @@ config:ci-cpu-intel-user: variables: IMAGE_NAME: $HYSOP_REGISTRY/ci_cpu_intel_user:latest extends: - - .hysop-configure + - .hysop-configure-venv - .lmap-cpu needs: - job: ubuntu:cpu-intel-user:docker-build # wait for docker image if docker build is on ... @@ -155,7 +156,7 @@ build:ci-cpu-intel-user: IMAGE_NAME: $HYSOP_REGISTRY/ci_cpu_intel_user:latest needs: ["config:ci-cpu-intel-user"] extends: - - .hysop-build + - .hysop-build-venv - .lmap-cpu install:ci-cpu-intel-user: @@ -163,7 +164,7 @@ install:ci-cpu-intel-user: IMAGE_NAME: $HYSOP_REGISTRY/ci_cpu_intel_user:latest needs: ["build:ci-cpu-intel-user"] extends: - - .hysop-install + - .hysop-install-venv - .lmap-cpu test:ci-cpu-intel-user: @@ -171,7 +172,7 @@ test:ci-cpu-intel-user: IMAGE_NAME: $HYSOP_REGISTRY/ci_cpu_intel_user:latest needs: ["install:ci-cpu-intel-user"] extends: - - .hysop-test + - .hysop-test-venv - .lmap-cpu examples:ci-cpu-intel-user: @@ -179,7 +180,7 @@ examples:ci-cpu-intel-user: IMAGE_NAME: $HYSOP_REGISTRY/ci_cpu_intel_user:latest needs: ["install:ci-cpu-intel-user"] extends: - - .hysop-examples + - .hysop-examples-venv - .lmap-cpu # Jobs to create docker images with a full hysop install, ready to use as a notebook @@ -188,7 +189,7 @@ binder:mamba:cpu: variables: IMAGE_NAME: lab-mamba RESULT_NAME: $CI_REGISTRY/particle_methods/hysop_binder/hysopbinderlab - SICONOS_DOCKER_TARGET: binderlab + DOCKER_TARGET: binderlab extends: - .hysop-docker-hysop needs: ["install:ci-cpu-intel-user"] @@ -198,7 +199,7 @@ jupyterlab:mamba:cpu: variables: IMAGE_NAME: lab-mamba RESULT_NAME: $CI_REGISTRY/particle_methods/hysop/hysoplab - SICONOS_DOCKER_TARGET: jupylab + DOCKER_TARGET: jupylab extends: - .hysop-docker-hysop needs: ["binder:mamba:cpu"] @@ -210,9 +211,9 @@ config:ci-gpu-nvidia-user: variables: IMAGE_NAME: $HYSOP_REGISTRY/ci_gpu_nvidia_user extends: - - .hysop-configure - - .lmap-cpu - needs: + - .hysop-configure-venv + - .hysop-gpu + needs: - job: ubuntu:gpu-nvidia-user:docker-build # wait for docker image if docker build is on ... optional: true @@ -221,32 +222,32 @@ build:ci-gpu-nvidia-user: IMAGE_NAME: $HYSOP_REGISTRY/ci_gpu_nvidia_user needs: ["config:ci-gpu-nvidia-user"] extends: - - .hysop-build - - .lmap-cpu + - .hysop-build-venv + - .hysop-gpu install:ci-gpu-nvidia-user: variables: IMAGE_NAME: $HYSOP_REGISTRY/ci_gpu_nvidia_user needs: ["build:ci-gpu-nvidia-user"] extends: - - .hysop-install - - .lmap-cpu + - .hysop-install-venv + - .hysop-gpu test:ci-gpu-nvidia-user: variables: IMAGE_NAME: $HYSOP_REGISTRY/ci_gpu_nvidia_user needs: ["install:ci-gpu-nvidia-user"] extends: - - .hysop-test - - .lmap-cpu + - .hysop-test-venv + - .hysop-gpu examples:ci-gpu-nvidia-user: variables: IMAGE_NAME: $HYSOP_REGISTRY/ci_gpu_nvidia_user needs: ["install:ci-gpu-nvidia-user"] extends: - - .hysop-examples - - .lmap-cpu + - .hysop-examples-venv + - .hysop-gpu @@ -298,9 +299,10 @@ examples:ci-gpu-nvidia: - .hysop-gpu docker:hysop:gpu-nvidia: - variables: - DOCKER_TARGET: hysop_gpu_nvidia + variables: IMAGE_NAME: hysop_gpu_nvidia + RESULT_NAME: $CI_REGISTRY/particle_methods/hysop/hysop_gpu_nvidia + DOCKER_TARGET: hysop_gpu_nvidia extends: - .hysop-docker-hysop - .lmap-cpu diff --git a/ci/ci-templates.yml b/ci/ci-templates.yml index 755470ad46ec55977b1d13a4f21d6e06183187f0..bd154d23827bd3a0c9a94399e19424533ebbf991 100644 --- a/ci/ci-templates.yml +++ b/ci/ci-templates.yml @@ -245,6 +245,54 @@ workflow: - export PYTHONPATH=`echo $PYTHONPATH_0` - "bash ci/scripts/run_examples.sh" +# Same as above, but with a default install in python env +.hysop-base-venv: + image: $IMAGE_NAME + artifacts: + expire_in: 1 week + paths: + - $BUILD_DIR + +.hysop-configure-venv: + extends: .hysop-base-venv + stage: configure + script: + - env + - "bash ci/scripts/version.sh" + - meson setup $BUILD_DIR $CI_PROJECT_DIR + +.hysop-build-venv: + extends: .hysop-base-venv + stage: build + script: + - meson compile -C $BUILD_DIR + +.hysop-install-venv: + extends: .hysop-base-venv + stage: install + script: + - meson install -C $BUILD_DIR + - python3 -c "import hysop; print(hysop); print(hysop.__file__)" + - python3 -c "from hysop import f2hysop; print(f2hysop); print(f2hysop.__file__)" + +.hysop-test-venv: + extends: .hysop-base-venv + stage: test + script: + - python3 -c "import hysop; print(hysop); print(hysop.__file__)" + - python3 -c "from hysop import f2hysop; print(f2hysop); print(f2hysop.__file__)" + - MESON_TESTTHREADS=1 meson test -C $BUILD_DIR + artifacts: + when: on_failure + paths: + - $BUILD_DIR + +.hysop-examples-venv: + extends: .hysop-base-venv + stage: test + script: + - "bash ci/scripts/run_examples.sh" + # A template to installs Hysop and generates a docker image with a full/uptodate install of Hysop .hysop-docker-hysop: image: