144 lines
3.2 KiB
YAML
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
|