Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
gitlab-job-template.yml 1.84 KiB
# kate: indent-width 2;

variables:
  TRAVIS_BRANCH: ${CI_COMMIT_REF_NAME}
  TRAVIS_COMMIT: ${CI_COMMIT_SHA}
  DOCKER_HOST: tcp://docker:2375/
  DOCKER_DRIVER: overlay2
  GIT_SUBMODULE_STRATEGY: recursive
  TESTS_MODULE_SUBDIR: None

.jobtpl:
  services:
    - docker:dind
  retry:
      max: 2
      when:
          - always
  image: docker:stable
  before_script:
    - |
      apk --update add openssh-client rsync git file bash python3
      pip3 install -U docker jinja2 docopt
      export BASEIMAGE="${MY_MODULE}-testing_${DOCKER_TAG}:${TRAVIS_BRANCH/\//_}"
      export IMAGE="dunecommunity/ci_${MY_MODULE}-testing_${DOCKER_TAG}:${TRAVIS_COMMIT}"
      # get image with fallback to master branch of the super repo
      docker pull dunecommunity/${BASEIMAGE} || export BASEIMAGE="${MY_MODULE}-testing_${DOCKER_TAG}:master" ; docker pull dunecommunity/${BASEIMAGE}
      export ENV_FILE=${HOME}/env
      mkdir ${CI_PROJECT_DIR}/testresults && chmod -R 777 ${CI_PROJECT_DIR}/testresults
      DOCKER_RUN="docker run -v ${CI_PROJECT_DIR}/testresults:/home/dune-ci/testresults --env-file ${ENV_FILE} ${IMAGE}"
      git submodule update --init --recursive
      docker build --build-arg BASE=${BASEIMAGE} -t ${IMAGE} -f .ci/shared/docker/ci_run/Dockerfile .
  script:
    - |
      [[ -f ./.gitsuper ]] && echo "Please remove .gitsuper from the repo" && exit 1
      python3 ./.ci/shared/scripts/make_env_file.py
      ${DOCKER_RUN} /home/dune-ci/src/${MY_MODULE}/.ci/shared/scripts/test_cpp.bash
      ${DOCKER_RUN} /home/dune-ci/src/${MY_MODULE}/.ci/shared/scripts/test_python.bash

  after_script:
    - |
      export IMAGE="dunecommunity/ci_${MY_MODULE}-testing_${DOCKER_TAG}:${TRAVIS_COMMIT}"
      echo $DOCKER_PW | docker login --username="$DOCKER_USER" --password-stdin
      docker push ${IMAGE}

  artifacts:
    reports:
      junit: '${CI_PROJECT_DIR}/testresults/*xml'