Skip to content
Snippets Groups Projects
Verified Commit ff695bd7 authored by Lars Bilke's avatar Lars Bilke
Browse files

[ci] Docker image generation for MRs.

parent 46e847f8
No related branches found
No related tags found
No related merge requests found
Showing
with 27 additions and 86 deletions
stages: stages:
- pre-check - preparation
- build - build
- check - check
- gui - gui
...@@ -11,7 +11,6 @@ variables: ...@@ -11,7 +11,6 @@ variables:
CONTAINER_GCC_IMAGE: $CI_REGISTRY/ogs/$CI_PROJECT_NAME/gcc CONTAINER_GCC_IMAGE: $CI_REGISTRY/ogs/$CI_PROJECT_NAME/gcc
CONTAINER_GCC_GUI_IMAGE: $CI_REGISTRY/ogs/$CI_PROJECT_NAME/gcc-gui CONTAINER_GCC_GUI_IMAGE: $CI_REGISTRY/ogs/$CI_PROJECT_NAME/gcc-gui
CONTAINER_CLANG_IMAGE: $CI_REGISTRY/ogs/$CI_PROJECT_NAME/clang CONTAINER_CLANG_IMAGE: $CI_REGISTRY/ogs/$CI_PROJECT_NAME/clang
CONTAINER_TAG: latest
XUNIT_TO_JUNIT_IMAGE: $CI_REGISTRY/ogs/$CI_PROJECT_NAME/xunit-to-junit XUNIT_TO_JUNIT_IMAGE: $CI_REGISTRY/ogs/$CI_PROJECT_NAME/xunit-to-junit
PRECOMMIT_IMAGE: $CI_REGISTRY/ogs/$CI_PROJECT_NAME/pre-commit PRECOMMIT_IMAGE: $CI_REGISTRY/ogs/$CI_PROJECT_NAME/pre-commit
WEB_IMAGE: $CI_REGISTRY/ogs/$CI_PROJECT_NAME/web WEB_IMAGE: $CI_REGISTRY/ogs/$CI_PROJECT_NAME/web
......
...@@ -15,8 +15,6 @@ ...@@ -15,8 +15,6 @@
- scripts/ci/extends/template-build-dockerfile.yml - scripts/ci/extends/template-build-dockerfile.yml
tags: tags:
- docker-shell - docker-shell
variables:
GIT_LFS_SKIP_SMUDGE: "1"
script: script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker pull $IMAGE_REF || true - docker pull $IMAGE_REF || true
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
- docker - docker
extends: extends:
- .test-artifacts - .test-artifacts
dependencies: [meta, meta_container]
variables: variables:
CCACHE_DIR: "$CI_PROJECT_DIR/.ccache" CCACHE_DIR: "$CI_PROJECT_DIR/.ccache"
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
- windows - windows
extends: extends:
- .vs2019-environment - .vs2019-environment
dependencies: [meta, meta_container]
variables: variables:
script: script:
- mkdir -p $env:BUILD_DIR - mkdir -p $env:BUILD_DIR
......
...@@ -2,18 +2,15 @@ build docs: ...@@ -2,18 +2,15 @@ build docs:
stage: build stage: build
image: image:
name: $CONTAINER_GCC_IMAGE name: $CONTAINER_GCC_IMAGE
needs: [meta] dependencies: [meta, meta_container]
before_script: before_script:
# HACK to easier linking to the generated pages # HACK to easier linking to the generated pages
- echo '<meta http-equiv="REFRESH" content="0;URL=build/docs/index.html">' >> Doxygen.html - echo '<meta http-equiv="REFRESH" content="0;URL=build/docs/index.html">' >> Doxygen.html
- mkdir -p build - mkdir -p build
- cd build - cd build
script: script:
- cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DOGS_USE_CONAN=OFF -DOGS_BUILD_PROCESSES=GroundwaterFlow - cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DOGS_USE_CONAN=OFF -DOGS_BUILD_PROCESSES=GroundwaterFlow
- cmake --build . --target doc > >(tee make-docs.output) - cmake --build . --target doc > >(tee make-docs.output)
artifacts: artifacts:
expose_as: 'Doxygen' expose_as: 'Doxygen'
paths: paths:
...@@ -24,8 +21,7 @@ build docs: ...@@ -24,8 +21,7 @@ build docs:
check docs links: check docs links:
stage: check stage: check
image: $WEB_IMAGE image: $WEB_IMAGE
needs: dependencies: [meta_container, "build docs"]
- job: build docs
extends: extends:
- .rules-master-manual - .rules-master-manual
script: script:
...@@ -42,8 +38,7 @@ deploy doxygen: ...@@ -42,8 +38,7 @@ deploy doxygen:
image: $WEB_IMAGE image: $WEB_IMAGE
rules: rules:
- if: '$CI_COMMIT_BRANCH == "master"' - if: '$CI_COMMIT_BRANCH == "master"'
needs: dependencies: [meta_container, "build docs"]
- job: build docs
variables: variables:
GIT_STRATEGY: none GIT_STRATEGY: none
script: script:
......
...@@ -6,10 +6,6 @@ build gui linux: ...@@ -6,10 +6,6 @@ build gui linux:
tags: tags:
- envinf1 - envinf1
- docker - docker
needs:
- meta
- job: build linux
artifacts: false
rules: rules:
- if: '$CI_COMMIT_BRANCH == "master"' - if: '$CI_COMMIT_BRANCH == "master"'
- changes: - changes:
......
build gui mac: build gui mac:
extends: .template-build-linux extends: .template-build-linux
stage: gui stage: gui
needs:
- meta
- job: build mac
artifacts: false
tags: tags:
- mac - mac
rules: rules:
......
build gui win: build gui win:
extends: .template-build-win extends: .template-build-win
stage: gui stage: gui
needs:
- meta
- job: build win
artifacts: false
rules: rules:
- if: '$CI_COMMIT_BRANCH == "master"' - if: '$CI_COMMIT_BRANCH == "master"'
- changes: - changes:
......
...@@ -4,7 +4,6 @@ build linux frontend: ...@@ -4,7 +4,6 @@ build linux frontend:
- .rules-master-manual - .rules-master-manual
tags: tags:
- frontend2 - frontend2
needs: [meta]
variables: variables:
BUILD_DIR: "build" BUILD_DIR: "build"
CCACHE_DIR: "/data/ogs/.ccache" CCACHE_DIR: "/data/ogs/.ccache"
......
...@@ -2,7 +2,6 @@ build linux petsc: ...@@ -2,7 +2,6 @@ build linux petsc:
extends: .template-build-linux extends: .template-build-linux
tags: tags:
- envinf1-shell - envinf1-shell
needs: [meta]
variables: variables:
BUILD_DIR: "build-petsc" BUILD_DIR: "build-petsc"
CMAKE_ARGS: "-DOGS_USE_CONAN=OFF -DOGS_USE_PETSC=ON -DBUILD_SHARED_LIBS=ON" CMAKE_ARGS: "-DOGS_USE_CONAN=OFF -DOGS_USE_PETSC=ON -DBUILD_SHARED_LIBS=ON"
...@@ -11,4 +11,3 @@ build linux: ...@@ -11,4 +11,3 @@ build linux:
-DOGS_USE_PYTHON=ON -DOGS_USE_PYTHON=ON
image: image:
name: $CONTAINER_GCC_IMAGE name: $CONTAINER_GCC_IMAGE
needs: [meta]
...@@ -2,7 +2,6 @@ build mac: ...@@ -2,7 +2,6 @@ build mac:
extends: .template-build-linux extends: .template-build-linux
tags: tags:
- mac - mac
needs: [meta]
variables: variables:
BUILD_DIR: "build-mac" BUILD_DIR: "build-mac"
CMAKE_ARGS: >- CMAKE_ARGS: >-
......
build win: build win:
extends: .template-build-win extends: .template-build-win
needs: [meta]
variables: variables:
BUILD_DIR: build-win BUILD_DIR: build-win
CMAKE_ARGS: >- CMAKE_ARGS: >-
......
build container images: build container images:
stage: .pre stage: preparation
rules: rules:
# TODO - changes:
# - changes: - ThirdParty/container-maker
# - ThirdParty/container-maker - scripts/ci/jobs/build_image.yml
# - scripts/ci/jobs/build_image.yml dependencies: [meta_container]
# when: always tags: [docker-shell]
- if: '$CI_COMMIT_BRANCH == "master"'
when: always
tags:
- envinf1-shell # can be changed back when instance-level vars are implemented
variables:
GIT_LFS_SKIP_SMUDGE: "1"
extends: .container-maker-setup extends: .container-maker-setup
script: script:
- docker login -u $OGS_CI_REGISTRY_USER -p $OGS_CI_REGISTRY_PASSWORD $CI_REGISTRY - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker pull registry.opengeosys.org/ogs/ogs/ogs/gcc || true
- python ThirdParty/container-maker/ogscm/cli.py --build --ogs off - python ThirdParty/container-maker/ogscm/cli.py --build --ogs off
--pm system --cvode --cppcheck --docs --gcovr --pm system --cvode --cppcheck --docs --gcovr --tfel
--tag $CONTAINER_GCC_IMAGE:$CONTAINER_TAG --upload --tag $CONTAINER_GCC_IMAGE --upload
- docker pull registry.opengeosys.org/ogs/ogs/ogs/gcc-gui || true
- python ThirdParty/container-maker/ogscm/cli.py --build --ogs off - python ThirdParty/container-maker/ogscm/cli.py --build --ogs off
--pm system --cvode --cppcheck --docs --gcovr --gui --pm system --cvode --cppcheck --docs --gcovr --gui
--tag $CONTAINER_GCC_GUI_IMAGE:$CONTAINER_TAG --upload --tag $CONTAINER_GCC_GUI_IMAGE --upload
- docker pull registry.opengeosys.org/ogs/ogs/ogs/clang || true
- python ThirdParty/container-maker/ogscm/cli.py --build --ogs off - python ThirdParty/container-maker/ogscm/cli.py --build --ogs off
--compiler clang --compiler_version 9 --compiler clang --compiler_version 9
--tag $CONTAINER_CLANG_IMAGE:$CONTAINER_TAG --upload --tag $CONTAINER_CLANG_IMAGE --upload
### global project images ### ### global project images ###
build xunit-to-junit image: build xunit-to-junit image:
...@@ -39,14 +29,10 @@ build xunit-to-junit image: ...@@ -39,14 +29,10 @@ build xunit-to-junit image:
- scripts/ci/jobs/build_image.yml - scripts/ci/jobs/build_image.yml
tags: tags:
- docker-shell - docker-shell
variables:
GIT_LFS_SKIP_SMUDGE: "1"
script: script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker pull $XUNIT_TO_JUNIT_IMAGE:latest || true - docker build --cache-from $XUNIT_TO_JUNIT_IMAGE -t $XUNIT_TO_JUNIT_IMAGE -f scripts/docker/saxon/Dockerfile scripts/docker/saxon
- docker build --cache-from $XUNIT_TO_JUNIT_IMAGE:latest -t $XUNIT_TO_JUNIT_IMAGE:latest -f scripts/docker/saxon/Dockerfile scripts/docker/saxon - docker push $XUNIT_TO_JUNIT_IMAGE
- docker push $XUNIT_TO_JUNIT_IMAGE:latest
build pre-commit image: build pre-commit image:
...@@ -58,13 +44,10 @@ build pre-commit image: ...@@ -58,13 +44,10 @@ build pre-commit image:
- scripts/ci/jobs/build_image.yml - scripts/ci/jobs/build_image.yml
tags: tags:
- docker-shell - docker-shell
variables:
GIT_LFS_SKIP_SMUDGE: "1"
script: script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker pull $PRECOMMIT_IMAGE:latest || true - docker build --cache-from $PRECOMMIT_IMAGE -t $PRECOMMIT_IMAGE -f scripts/docker/Dockerfile.pre-commit scripts/docker
- docker build --cache-from $PRECOMMIT_IMAGE:latest -t $PRECOMMIT_IMAGE:latest -f scripts/docker/Dockerfile.pre-commit scripts/docker - docker push $PRECOMMIT_IMAGE
- docker push $PRECOMMIT_IMAGE:latest
build web image: build web image:
stage: .pre stage: .pre
...@@ -75,10 +58,7 @@ build web image: ...@@ -75,10 +58,7 @@ build web image:
- scripts/ci/jobs/build_image.yml - scripts/ci/jobs/build_image.yml
tags: tags:
- docker-shell - docker-shell
variables:
GIT_LFS_SKIP_SMUDGE: "1"
script: script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker pull $WEB_IMAGE:latest || true - docker build --cache-from $WEB_IMAGE -t $WEB_IMAGE -f scripts/docker/Dockerfile.web scripts/docker
- docker build --cache-from $WEB_IMAGE:latest -t $WEB_IMAGE:latest -f scripts/docker/Dockerfile.web scripts/docker - docker push $WEB_IMAGE
- docker push $WEB_IMAGE:latest
...@@ -4,17 +4,14 @@ check header: ...@@ -4,17 +4,14 @@ check header:
tags: tags:
- docker - docker
extends: extends:
- .defaults
- .rules-master-manual - .rules-master-manual
dependencies: [meta_container]
variables: variables:
BUILD_DIR: "build-check-header" BUILD_DIR: "build-check-header"
CCACHE_DIR: "$CI_PROJECT_DIR/.ccache" CCACHE_DIR: "$CI_PROJECT_DIR/.ccache"
CMAKE_ARGS: "-DOGS_CHECK_HEADER_COMPILATION=ON -DOGS_BUILD_UTILS=ON -DOGS_BUILD_GUI=ON -DOGS_USE_PYTHON=ON -DBUILD_SHARED_LIBS=ON" CMAKE_ARGS: "-DOGS_CHECK_HEADER_COMPILATION=ON -DOGS_BUILD_UTILS=ON -DOGS_BUILD_GUI=ON -DOGS_USE_PYTHON=ON -DBUILD_SHARED_LIBS=ON"
image: image:
name: $CONTAINER_GCC_GUI_IMAGE name: $CONTAINER_GCC_GUI_IMAGE
script: script:
- mkdir -p $BUILD_DIR - mkdir -p $BUILD_DIR
- cd $BUILD_DIR - cd $BUILD_DIR
...@@ -24,7 +21,6 @@ check header: ...@@ -24,7 +21,6 @@ check header:
-DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_BUILD_TYPE=$BUILD_TYPE
-DOGS_BUILD_PROCESSES=$BUILD_PROCESSES || true -DOGS_BUILD_PROCESSES=$BUILD_PROCESSES || true
- cat CMakeFiles/CMakeError.log - cat CMakeFiles/CMakeError.log
cache: cache:
paths: paths:
- $CCACHE_DIR - $CCACHE_DIR
...@@ -17,7 +17,6 @@ compiler warnings: ...@@ -17,7 +17,6 @@ compiler warnings:
- "if [[ $(cat make.output | grep warning -i) ]]; then echo 'There were Clang (macOS) compiler warnings:'; cat make.output | grep warning -i; exit_code=1; fi" - "if [[ $(cat make.output | grep warning -i) ]]; then echo 'There were Clang (macOS) compiler warnings:'; cat make.output | grep warning -i; exit_code=1; fi"
- exit $exit_code - exit $exit_code
ctest results: ctest results:
stage: check stage: check
variables: variables:
......
clang sanitizer: clang sanitizer:
stage: check stage: check
tags:
- docker
extends: extends:
- .defaults
- .rules-manual - .rules-manual
dependencies: [meta_container]
variables: variables:
BUILD_DIR: "build-sanitizer" BUILD_DIR: "build-sanitizer"
CMAKE_ARGS: "-DOGS_ADDRESS_SANITIZER=ON -DOGS_UNDEFINED_BEHAVIOR_SANITIZER=ON -DOGS_BUILD_UTILS=ON" CMAKE_ARGS: "-DOGS_ADDRESS_SANITIZER=ON -DOGS_UNDEFINED_BEHAVIOR_SANITIZER=ON -DOGS_BUILD_UTILS=ON"
UBSAN_OPTIONS: "print_stacktrace=1" UBSAN_OPTIONS: "print_stacktrace=1"
LSAN_OPTIONS: "suppressions=$CI_PROJECT_DIR/scripts/test/leak_sanitizer.suppressions" LSAN_OPTIONS: "suppressions=$CI_PROJECT_DIR/scripts/test/leak_sanitizer.suppressions"
image: image:
name: $CONTAINER_CLANG_IMAGE name: $CONTAINER_CLANG_IMAGE
script: script:
- mkdir -p $BUILD_DIR - mkdir -p $BUILD_DIR
- cd $BUILD_DIR - cd $BUILD_DIR
......
clang tidy: clang tidy:
stage: check stage: check
tags:
- docker
extends: extends:
- .defaults
- .rules-manual - .rules-manual
dependencies: [meta_container]
variables: variables:
BUILD_DIR: "build-tidy" BUILD_DIR: "build-tidy"
CMAKE_ARGS: "-DBUILD_SHARED_LIBS=ON -DBUILD_TESTING=OFF -DCMAKE_CXX_CLANG_TIDY=clang-tidy-9" CMAKE_ARGS: "-DBUILD_SHARED_LIBS=ON -DBUILD_TESTING=OFF -DCMAKE_CXX_CLANG_TIDY=clang-tidy-9"
......
code_quality: code_quality:
stage: check stage: check
extends: needs: []
- .defaults
rules: rules:
variables: variables:
DOCKER_TLS_CERTDIR: "/certs" DOCKER_TLS_CERTDIR: "/certs"
...@@ -9,7 +9,6 @@ container: ...@@ -9,7 +9,6 @@ container:
variables: variables:
OPENMPI_VERSIONS: 'off' # 4.0.1 OPENMPI_VERSIONS: 'off' # 4.0.1
extends: extends:
- .defaults
- .container-maker-setup - .container-maker-setup
script: script:
- python ThirdParty/container-maker/ogscm/cli.py -B -C -R --ogs . --pm system --cvode --ompi $OPENMPI_VERSIONS - python ThirdParty/container-maker/ogscm/cli.py -B -C -R --ogs . --pm system --cvode --ompi $OPENMPI_VERSIONS
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment