# 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 10 through 18 # We test only CLANG 10 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 variables: COMPILER: clang++-$CLANG .weekly-clang-ubuntu20.04: image: ubuntu:20.04 extends: .weekly-clang-ubuntu variables: LIBGSL: libgsl23 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 10 weekly-build-clang-10-debug: extends: .weekly-clang-ubuntu20.04 needs: ["weekly-clang"] stage: build variables: CLANG: 10 MODE: debug weekly-build-clang-10-default: extends: .weekly-clang-ubuntu20.04 needs: ["weekly-clang"] stage: build variables: CLANG: 10 MODE: default weekly-build-clang-10-optimized: extends: .weekly-clang-ubuntu20.04 needs: ["weekly-clang"] stage: build variables: CLANG: 10 MODE: optimized weekly-test-clang-10-default: extends: .weekly-clang-ubuntu20.04 stage: test needs: ["weekly-build-clang-10-default"] dependencies: - weekly-build-clang-10-default variables: CLANG: 10 MODE: default weekly-test-clang-10-optimized: extends: .weekly-clang-ubuntu20.04 stage: test needs: ["weekly-build-clang-10-optimized"] dependencies: - weekly-build-clang-10-optimized variables: CLANG: 10 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