Page MenuHomec4science

.gitlab-ci.yml
No OneTemporary

File Metadata

Created
Mon, Mar 3, 05:19

.gitlab-ci.yml

# yaml-language-server: $schema=gitlab-ci
# yaml-language-server: $format.enable=false
stages:
- configure
- build_libs
- build_tests
- test
- code_quality
- deploy
include:
local: '.gitlab-ci.d/*.yaml'
#-------------------------------------------------------------------------------
# Rebuilding the docker images if needed
#-------------------------------------------------------------------------------
docker build:debian-bullseye:
variables:
IMAGE_NAME: debian:bullseye
extends: .docker_build
docker build:ubuntu-lts:
variables:
IMAGE_NAME: ubuntu:lts
extends: .docker_build
docker build:manylinux:
variables:
IMAGE_NAME: manylinux:2010_x86_64
extends: .docker_build
# ------------------------------------------------------------------------------
# Debian bullseye compiled with GCC
# ------------------------------------------------------------------------------
configure:debian_bullseye_gcc:
extends:
- .debian_bullseye_gcc
- .build_coverage
- .configure
build:debian_bullseye_gcc:
extends:
- .debian_bullseye_gcc
- .build_coverage
- .build_all
needs:
- job: configure:debian_bullseye_gcc
test:debian_bullseye_gcc:
extends:
- .debian_bullseye_gcc
- .build_coverage
- .tests
coverage: '/^lines: (\d+\.\d+\%)/'
needs:
- job: build:debian_bullseye_gcc
# ------------------------------------------------------------------------------
# Debian bullseye compiled with Clang
# ------------------------------------------------------------------------------
configure:debian_bullseye_clang:
extends:
- .debian_bullseye_clang
- .build_coverage
- .configure
build:debian_bullseye_clang:
extends:
- .debian_bullseye_clang
- .build_coverage
- .build_all
needs:
- job: configure:debian_bullseye_clang
test:debian_bullseye_clang:
extends:
- .debian_bullseye_clang
- .build_coverage
- .tests
coverage: '/^lines: (\d+\.\d+\%)/'
needs:
- job: build:debian_bullseye_clang
# ------------------------------------------------------------------------------
# Ubuntu LTS compiled with GCC
# ------------------------------------------------------------------------------
configure:ubuntu_lts_gcc:
extends:
- .ubuntu_lts_gcc
- .build_release
- .configure
build:ubuntu_lts_gcc:
extends:
- .ubuntu_lts_gcc
- .build_release
- .build_all
needs:
- job: configure:ubuntu_lts_gcc
test:ubuntu_lts_gcc:
extends:
- .ubuntu_lts_gcc
- .build_release
- .tests
needs:
- job: build:ubuntu_lts_gcc
# ------------------------------------------------------------------------------
# Debian bullseye compiled with GCC tested with valgrind
# ------------------------------------------------------------------------------
configure:ubuntu_lts_gcc_valgrind:
extends:
- .ubuntu_lts_gcc
- .build_valgrind
- .configure
build:ubuntu_lts_gcc_valgrind:
extends:
- .ubuntu_lts_gcc
- .build_valgrind
- .build_all
needs:
- job: configure:ubuntu_lts_gcc_valgrind
test:ubuntu_lts_gcc_valgrind:
extends:
- .ubuntu_lts_gcc
- .build_valgrind
- .tests
needs:
- job: build:ubuntu_lts_gcc_valgrind
# ------------------------------------------------------------------------------
# Manylinux to build python packages
# ------------------------------------------------------------------------------
configure:python_package:
stage: configure
extends:
- .manylinux_2010_x64_gcc
- .build_release
script:
# create the build folder
- cmake -E make_directory build
- cd build
# Variables for cmake
- export CMAKE_PREFIX_PATH=/softs/view
- export BOOST_ROOT=/softs/view
# Configure in sequential and without tests or examples
- cmake -DAKANTU_COHESIVE_ELEMENT:BOOL=TRUE
-DAKANTU_IMPLICIT:BOOL=TRUE
-DAKANTU_PARALLEL:BOOL=FALSE
-DAKANTU_STRUCTURAL_MECHANICS:BOOL=TRUE
-DAKANTU_HEAT_TRANSFER:BOOL=TRUE
-DAKANTU_DAMAGE_NON_LOCAL:BOOL=TRUE
-DAKANTU_PHASE_FIELD:BOOL=TRUE
-DAKANTU_PYTHON_INTERFACE:BOOL=FALSE
-DAKANTU_CONTACT_MECHANICS:BOOL=TRUE
-DAKANTU_EXAMPLES:BOOL=FALSE
-DAKANTU_TESTS:BOOL=FALSE
-DMUMPS_DETECT_DEBUG:BOOL=TRUE
-DCMAKE_INSTALL_PREFIX:PATH=${CI_PROJECT_DIR}/install
-DCMAKE_BUILD_TYPE:STRING=${BUILD_TYPE} ..
artifacts:
when: on_success
paths:
- build/
expire_in: 10h
build_akantu:python_package:
extends:
- .build_libs
- .build_release
- .manylinux_2010_x64_gcc
script:
stage: build_libs
script:
- cmake --build build --target akantu -j1
- cmake --install build
artifacts:
when: on_success
paths:
- install/
expire_in: 10h
needs:
- job: configure:python_package
build_pip:python_package:
stage: build_tests
extends:
- .build_release
- .manylinux_2010_x64_gcc
script:
- export CI_AKANTU_INSTALL_PREFIX=${CI_PROJECT_DIR}/install
- export CMAKE_PREFIX_PATH=/softs/view:${CI_AKANTU_INSTALL_PREFIX}
- test/ci/make-wheels.sh
needs:
- job: build_akantu:python_package
artifacts:
when: on_success
paths:
- wheelhouse
expire_in: 10h
test:python_package:
stage: test
image: python:3.8
needs:
- job: build_pip:python_package
script:
- pip install numpy scipy
- pip install akantu --no-index --find-links=${PWD}/wheelhouse
- python -c "import akantu"
- cd examples/python/dynamics/
- apt update && apt install -y gmsh
- gmsh -2 bar.geo
- python ./dynamics.py
package:python_gitlab:
stage: deploy
image: python:latest
script:
- pip install twine
- TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token
python3 -m twine upload
--repository-url https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/pypi
wheelhouse/*
needs:
- job: build_pip:python_package
- job: test:python_package
only:
- master
package:python_pypi:
stage: deploy
image: python:latest
script:
- pip install twine
- TWINE_PASSWORD=${PYPI_TOKEN} TWINE_USERNAME=__token__
python3 -m twine upload --verbose wheelhouse/*
needs:
- job: build_pip:python_package
- job: test:python_package
only:
- tags
# ------------------------------------------------------------------------------
# Code Quality
# ------------------------------------------------------------------------------
cq:code_quality:
extends:
- .code_quality_gitlab_template
needs:
- job: build:debian_bullseye_clang
artifacts:
paths:
- gl-code-quality-report.json
cq:clang_tidy:
extends:
- .clang_tools
script:
- test/ci/scripts/cq
-x third-party
-x extra-packages
-x pybind11
-x test
${FILE_LIST_ARG}
clang-tidy
-p ${CI_PROJECT_DIR}/build > gl-clang-tidy-report.json
needs:
- job: build:debian_bullseye_clang
artifacts:
paths:
- gl-clang-tidy-report.json
cq:clang_format:
extends:
- .clang_tools
script:
- test/ci/scripts/cq
-x third-party
-x extra-packages
clang-format
-p ${CI_PROJECT_DIR}/build > gl-clang-format-report.json
needs:
- job: build:debian_bullseye_clang
artifacts:
paths:
- gl-clang-format-report.json
cq:compilation_warnings:
stage: code_quality
image: python:latest
script:
- pip install warning-parser termcolor Click
- ls build-*-err.log
- test/ci/scripts/cq
-x third-party
-x extra-packages
warnings
build-*-err.log > gl-warnings-report.json
needs:
- job: build:debian_bullseye_clang
- job: build:debian_bullseye_gcc
- job: build:ubuntu_lts_gcc
artifacts:
paths:
- gl-warnings-report.json
cq:merge_code_quality:
stage: deploy
extends:
- .debian_bullseye_clang
script:
- jq -Ms '[.[][]]' gl-*-report.json | tee gl-codequality.json | jq -C
needs:
- job: cq:code_quality
- job: cq:clang_tidy
- job: cq:clang_format
- job: cq:compilation_warnings
artifacts:
paths:
- gl-codequality.json
artifacts:
reports:
codequality: [gl-codequality.json]
# ------------------------------------------------------------------------------
# Deploy pages
# ------------------------------------------------------------------------------
pages:
stage: deploy
extends:
- .debian_bullseye_gcc
script:
- cd build
- cmake -DAKANTU_DOCUMENTATION=ON ..
- cmake --build . -t sphinx-doc
- mv doc/dev-doc/html ../public
needs:
- job: build:debian_bullseye_gcc
artifacts:
paths:
- public
only:
- master

Event Timeline