Files
unison/utils/tests/gitlab-ci-clang.yml

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