Files
unison/utils/tests/gitlab-ci-clang.yml
2024-09-05 11:37:50 +02:00

144 lines
3.2 KiB
YAML

# NS3 CI script for CLANG
# Any scheduled pipeline for CLANG should define a variable, named
# "RELEASE", that has a value "weekly". Also, a variable "CLANG" should be set
# to True.
# We support CLANG versions 11 through 18
# We test only CLANG 11 on Ubuntu 20.04 and CLANG 18 on Ubuntu 24.04
.weekly-clang-ubuntu:
extends: .base-build
rules:
- if: $RELEASE == "weekly"
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
allow_failure: true
before_script:
- apt update
- apt upgrade -y
- DEBIAN_FRONTEND=noninteractive apt install -y
clang-$CLANG cmake ninja-build ccache build-essential
libboost-all-dev
libeigen3-dev
libgtk-3-0 libgtk-3-dev
libgsl-dev $LIBGSL gsl-bin
libsqlite3-dev sqlite3
libxml2 libxml2-dev
ssh git $EXTRA_PACKAGES
variables:
COMPILER: clang++-$CLANG
.weekly-clang-ubuntu20.04:
image: ubuntu:20.04
extends: .weekly-clang-ubuntu
variables:
LIBGSL: libgsl23
EXTRA_PACKAGES: libstdc++-10-dev
EXTRA_OPTIONS: --disable-eigen
.weekly-clang-ubuntu24.04:
image: ubuntu:24.04
extends: .weekly-clang-ubuntu
variables:
LIBGSL: libgsl27
weekly-clang:
rules:
- if: $RELEASE == "weekly"
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
when: manual
allow_failure: true
stage: pre-build
script:
- echo "Starting clang jobs"
# CLANG 11
weekly-build-clang-11-debug:
extends: .weekly-clang-ubuntu20.04
needs: ["weekly-clang"]
stage: build
variables:
CLANG: 11
MODE: debug
weekly-build-clang-11-default:
extends: .weekly-clang-ubuntu20.04
needs: ["weekly-clang"]
stage: build
variables:
CLANG: 11
MODE: default
weekly-build-clang-11-optimized:
extends: .weekly-clang-ubuntu20.04
needs: ["weekly-clang"]
stage: build
variables:
CLANG: 11
MODE: optimized
weekly-test-clang-11-default:
extends: .weekly-clang-ubuntu20.04
stage: test
needs: ["weekly-build-clang-11-default"]
dependencies:
- weekly-build-clang-11-default
variables:
CLANG: 11
MODE: default
weekly-test-clang-11-optimized:
extends: .weekly-clang-ubuntu20.04
stage: test
needs: ["weekly-build-clang-11-optimized"]
dependencies:
- weekly-build-clang-11-optimized
variables:
CLANG: 11
MODE: optimized
# CLANG 18
weekly-build-clang-18-debug:
extends: .weekly-clang-ubuntu24.04
needs: ["weekly-clang"]
stage: build
variables:
CLANG: 18
MODE: debug
weekly-build-clang-18-default:
extends: .weekly-clang-ubuntu24.04
needs: ["weekly-clang"]
stage: build
variables:
CLANG: 18
MODE: default
weekly-build-clang-18-optimized:
extends: .weekly-clang-ubuntu24.04
needs: ["weekly-clang"]
stage: build
variables:
CLANG: 18
MODE: optimized
weekly-test-clang-18-default:
extends: .weekly-clang-ubuntu24.04
stage: test
needs: ["weekly-build-clang-18-default"]
dependencies:
- weekly-build-clang-18-default
variables:
CLANG: 18
MODE: default
weekly-test-clang-18-optimized:
extends: .weekly-clang-ubuntu24.04
stage: test
needs: ["weekly-build-clang-18-optimized"]
dependencies:
- weekly-build-clang-18-optimized
variables:
CLANG: 18
MODE: optimized