# 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 17 through 20 # We test only CLANG 17 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 lld-$CLANG libc++-$CLANG-dev libc++abi-$CLANG-dev 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-ubuntu24.04: image: ubuntu:24.04 extends: .weekly-clang-ubuntu variables: LIBGSL: libgsl27 EXTRA_PACKAGES: libstdc++-10-dev .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 17 weekly-build-clang-17-debug: extends: .weekly-clang-ubuntu24.04 needs: ["weekly-clang"] stage: build variables: CLANG: 17 MODE: debug weekly-build-clang-17-default: extends: .weekly-clang-ubuntu24.04 needs: ["weekly-clang"] stage: build variables: CLANG: 17 MODE: default weekly-build-clang-17-optimized: extends: .weekly-clang-ubuntu24.04 needs: ["weekly-clang"] stage: build variables: CLANG: 17 MODE: optimized weekly-test-clang-17-default: extends: .weekly-clang-ubuntu24.04 stage: test needs: ["weekly-build-clang-17-default"] dependencies: - weekly-build-clang-17-default variables: CLANG: 17 MODE: default weekly-test-clang-17-optimized: extends: .weekly-clang-ubuntu24.04 stage: test needs: ["weekly-build-clang-17-optimized"] dependencies: - weekly-build-clang-17-optimized variables: CLANG: 17 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