stages: - docker - configure - build - test variables: IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG GIT_SUBMODULE_STRATEGY: recursive BUILD_DIR: build-release cache: key: "$CI_COMMIT_REF_SLUG" docker build:debian: stage: docker image: docker:19.03.12 services: - docker:19.03.12-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" script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker build -t $IMAGE_TAG . - docker push $IMAGE_TAG rules: - changes: - Dockerfile .debian_stable: image: $IMAGE_TAG configure: stage: configure extends: .debian_stable before_script: - rm -rf build-* script: - scons build_tests=True use_googletest=True build_python=True py_exec=python3 use_mpi=True verbose=True -h artifacts: paths: - build-setup.conf build: stage: build needs: [configure] extends: .debian_stable variables: COMPILE_LOG: compilation.txt script: - scons 2>&1 | tee $COMPILE_LOG artifacts: paths: - $COMPILE_LOG - $BUILD_DIR test: stage: test needs: [build] extends: .debian_stable variables: PYTHONPATH: $CI_PROJECT_DIR/$BUILD_DIR/python TESTS: $BUILD_DIR/tests JUNITXML: results.xml script: - ls $PYTHONPATH - python3 -c 'import sys; print(sys.path)' - python3 -m pytest -vvv --durations=0 --junitxml=$JUNITXML $TESTS artifacts: paths: - $JUNITXML reports: junit: - $JUNITXML