diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d086baece7e488a9b6c86b917ddaacb782a69c72..dc0902380bc7c12eceed4dc91af630ff888a7673 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,6 @@ stages: - build + - test variables: BUILD_ENV_DOCKER_IMAGE: docker-registry.ebrains.eu/tc/ebrains-spack-build-env/okd:devel @@ -180,15 +181,17 @@ build-spack-env-on-runner: script: # run installation script - . install_spack_env.sh $CI_PROJECT_DIR $SPACK_VERSION $CI_PROJECT_DIR $SPACK_DEV_ENV $SPACK_PATH_GITLAB + # re-activate envionment and run tests + - spack env activate $SPACK_DEV_ENV - spack test run after_script: - - mv /tmp/spack_tests $CI_PROJECT_DIR - mkdir -p $CI_PROJECT_DIR/spack_logs/installed $CI_PROJECT_DIR/spack_logs/not_installed # for succesfully installed packages: keep the spack logs for any package modified during this CI job - PKG_DIR=$CI_PROJECT_DIR/spack/opt/spack/linux-ubuntu20.04-x86_64/gcc-10.3.0 - if cd $PKG_DIR; then find . \( -name ".spack" -o -name ".build" -o -name ".spack_test_results" \) -exec cp -r --parents "{}" $CI_PROJECT_DIR/spack_logs/installed \;; fi # for not succesfully installed packages: also keep the spack logs for any packages that failed - if cd /tmp/$(whoami)/spack-stage/; then find . -maxdepth 2 -name "*.txt" -exec cp --parents "{}" $CI_PROJECT_DIR/spack_logs/not_installed \;; fi + - if [ -d /tmp/spack_tests ]; then mv /tmp/spack_tests $CI_PROJECT_DIR; fi artifacts: paths: - spack_logs @@ -228,3 +231,29 @@ sync-gitlab-spack-instance: rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PROJECT_NAMESPACE =~ /technical-coordination/ when: manual + +test-gitlab-spack-instance: + stage: test + tags: + - docker-runner + - read-write + image: $GITLAB_BUILD_ENV_DOCKER_IMAGE + variables: + SPACK_NFS_ENV: ebrains-runner-build + SPACK_REPO_PATH: $SPACK_PATH_GITLAB/ebrains-spack-builds + SPACK_USER_CACHE_PATH: $SPACK_PATH_GITLAB/spack/.spack + SPACK_USER_CONFIG_PATH: $SPACK_PATH_GITLAB/spack/.spack + script: + - source $SPACK_PATH_GITLAB/spack/share/spack/setup-env.sh + - spack env activate $SPACK_NFS_ENV + - spack test run + after_script: + - if [ -d /tmp/spack_tests ]; then mv /tmp/spack_tests $CI_PROJECT_DIR; fi + artifacts: + paths: + - spack_tests + when: always + rules: + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PROJECT_NAMESPACE =~ /technical-coordination/ + - if: $CI_PIPELINE_SOURCE == "schedule" && $TEST_DEPLOYMENT == "true" +