Newer
Older

Santiago Ospina De Los Ríos
committed
- setup
- deploy_test
.default_tags: &default_tags
- "cores:4"
.dind_docker_tags: &dind_docker_tags
- "dind"
.global_variables: &global_variables
DUNE_OPTIONS_FILE: /duneci/dune.opts
DUNECONTROL: dunecontrol

Santiago Ospina De Los Ríos
committed
BASE_IMAGE_VERSION: v0.4.0-git
.docker_variables: &docker_variables
DOCKER_IMAGE: docker:19.03.1
DOCKER_HOST: tcp://docker:2375/
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
<<: *global_variables
TOOLCHAIN: gcc-8-17
DUNECI_OS: debian
BASE_IMAGE: debian:10
DEPENDENCIES_IMAGE: ${CI_REGISTRY}/copasi/dune-copasi/dependencies:${DUNECI_OS}-${TOOLCHAIN}-${BASE_IMAGE_VERSION}
DEPLOY_LATEST: "true"
<<: *global_variables
TOOLCHAIN: clang-6-17
DUNECI_OS: debian
BASE_IMAGE: debian:10
DEPENDENCIES_IMAGE: ${CI_REGISTRY}/copasi/dune-copasi/dependencies:${DUNECI_OS}-${TOOLCHAIN}-${BASE_IMAGE_VERSION}
<<: *global_variables
TOOLCHAIN: gcc-7-17
DUNECI_OS: ubuntu
BASE_IMAGE: ubuntu:18.04
DEPENDENCIES_IMAGE: ${CI_REGISTRY}/copasi/dune-copasi/dependencies:${DUNECI_OS}-${TOOLCHAIN}-${BASE_IMAGE_VERSION}
<<: *global_variables
TOOLCHAIN: clang-6-17
DUNECI_OS: ubuntu
BASE_IMAGE: ubuntu:18.04
DEPENDENCIES_IMAGE: ${CI_REGISTRY}/copasi/dune-copasi/dependencies:${DUNECI_OS}-${TOOLCHAIN}-${BASE_IMAGE_VERSION}

Santiago Ospina De Los Ríos
committed
.setup: &setup
image: ${DOCKER_IMAGE}

Santiago Ospina De Los Ríos
committed
stage: setup
script:
- echo "$CI_REGISTRY_PASSWORD" | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY/copasi/dune-copasi
- docker build
--build-arg BASE_IMAGE=${BASE_IMAGE}
--build-arg TOOLCHAIN=${TOOLCHAIN}
--target setup-env
-t ${DEPENDENCIES_IMAGE} .
- docker push ${DEPENDENCIES_IMAGE}
- docker logout $CI_REGISTRY/copasi/dune-copasi
rules:
- if: '$REBUILD_BASE_IMAGE'
- if: '$CI_COMMIT_TAG'
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
- if: '$CI_COMMIT_BRANCH == "latest"'
<<: *dind_docker_tags
image: ${DEPENDENCIES_IMAGE}

Santiago Ospina De Los Ríos
committed
- echo 'CMAKE_FLAGS+=" -DCMAKE_INSTALL_PREFIX=dune-copasi-install"' >> /duneci/cmake-flags/dune_copasi
- bash dune-copasi/.ci/build.sh

Santiago Ospina De Los Ríos
committed
- dune-copasi-install
<<: *default_tags
image: ${DEPENDENCIES_IMAGE}

Santiago Ospina De Los Ríos
committed
- echo 'CMAKE_FLAGS+=" -DCMAKE_PREFIX_PATH=dune-copasi-install"' >> /duneci/cmake-flags/dune_copasi
- echo 'CMAKE_FLAGS+=" -DCMAKE_BUILD_TYPE=Debug"' >> /duneci/cmake-flags/dune_copasi
- bash dune-copasi/.ci/unit_tests.sh
<<: *default_tags
image: ${DEPENDENCIES_IMAGE}
- cd ..
- bash dune-copasi/.ci/system_tests.sh
<<: *default_tags
image: ${DOCKER_IMAGE}
- echo "$CI_REGISTRY_PASSWORD" | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY/copasi/dune-copasi
- DOCKER_TAG="${DUNECI_OS}-${TOOLCHAIN}-${CI_COMMIT_REF_NAME}"
- docker build
--build-arg BASE_IMAGE=${BASE_IMAGE}
--build-arg TOOLCHAIN=${TOOLCHAIN}
--cache-from ${DEPENDENCIES_IMAGE}
-t $CI_REGISTRY/copasi/dune-copasi/dune-copasi:${DOCKER_TAG} .
- docker push $CI_REGISTRY/copasi/dune-copasi/dune-copasi:${DOCKER_TAG}
- if [ "$CI_COMMIT_BRANCH" == "latest" && $DEPLOY_LATEST ]; then
docker tag $CI_REGISTRY/copasi/dune-copasi/dune-copasi:${DOCKER_TAG} $CI_REGISTRY/copasi/dune-copasi/dune-copasi:latest
docker push $CI_REGISTRY/copasi/dune-copasi/dune-copasi:latest
fi
- docker logout $CI_REGISTRY/copasi/dune-copasi
rules:
- if: '$CI_COMMIT_TAG'
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
- if: '$CI_COMMIT_BRANCH == "latest"'
<<: *dind_docker_tags
.deploy_test: &deploy_test
<<: *deploy
stage: deploy_test
script:
- mkdir -m 777 dunecopasi && cd dunecopasi
- cp test/test_cell.mini dunecopasi
- docker run -v $PWD $CI_REGISTRY/copasi/dune-copasi/dune-copasi:${DOCKER_TAG} dune-copasi-md test_cell.mini

Santiago Ospina De Los Ríos
committed
setup:debian_gcc:
variables:
<<: *docker_variables
<<: *debian_gcc

Santiago Ospina De Los Ríos
committed
<<: *setup
variables:
<<: *debian_gcc
<<: *build
dependencies:
- setup:debian_gcc
variables:
<<: *debian_gcc
dependencies:
- build:debian_gcc
variables:
<<: *debian_gcc
dependencies:
- build:debian_gcc
variables:
<<: *docker_variables
<<: *debian_gcc
deploy_test:debian_gcc:
variables:
<<: *docker_variables
<<: *debian_gcc
<<: *deploy_test
dependencies:
- deploy:debian_gcc
# # ubuntu gcc
# setup:ubuntu_gcc:
# variables:
# <<: *docker_variables
# <<: *ubuntu_gcc
# variables:
# <<: *ubuntu_gcc
# <<: *build
# dependencies:
# - setup:ubuntu_gcc
# variables:
# <<: *ubuntu_gcc
# dependencies:
# - build:ubuntu_gcc
# variables:
# <<: *ubuntu_gcc
# dependencies:
# - build:ubuntu_gcc
# variables:
# <<: *docker_variables
# <<: *ubuntu_gcc
# deploy_test:ubuntu_gcc:
# variables:
# <<: *docker_variables
# <<: *ubuntu_gcc
# <<: *deploy_test
# dependencies:
# - deploy:ubuntu_gcc
# debian clang
setup:debian_clang:
variables:
<<: *docker_variables
<<: *debian_clang
variables:
<<: *debian_clang
<<: *build
dependencies:
- setup:debian_clang
variables:
<<: *debian_clang
dependencies:
- build:debian_clang
variables:
<<: *debian_clang
dependencies:
- build:debian_clang
variables:
<<: *docker_variables
<<: *debian_clang
deploy_test:debian_clang:
variables:
<<: *docker_variables
<<: *debian_clang
<<: *deploy_test
dependencies:
- deploy:debian_clang
# # ubuntu clang
# setup:ubuntu_clang:
# <<: *ubuntu_clang
# build:ubuntu_clang:
# <<: *ubuntu_clang
# <<: *build
# dependencies:
# - setup:ubuntu_clang
# dependencies:
# - build:ubuntu_clang
# deploy:ubuntu_clang:
# <<: *ubuntu_clang
# <<: *deploy
# dependencies:
# - system_tests:ubuntu_clang
# deploy_test:ubuntu_clang:
# variables:
# <<: *docker_variables
# <<: *ubuntu_clang
# <<: *deploy_test
# dependencies:
# - deploy:ubuntu_clang