Files
unison/utils/tests/gitlab-ci-clang.yml
2023-05-03 19:45:04 +02:00

265 lines
5.8 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 6, 8, 9, 10, 11, 12, 13, 14
# We test only CLANG 6 and 10 on Ubuntu 18.04, and 11 and 14 on Ubuntu 22.04
# The test is done under Linux.
.weekly-clang-ubuntu18.04:
image: ubuntu:18.04
extends: .base-build
rules:
- if: $RELEASE == "weekly"
- if: $CLANG_BUILD_ENABLE == "True"
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
allow_failure: true
before_script:
- apt update
- apt upgrade -y
- 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-ubuntu22.04:
image: ubuntu:22.04
extends: .base-build
rules:
- if: $RELEASE == "weekly"
- if: $CLANG_BUILD_ENABLE == "True"
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
allow_failure: true
before_script:
- apt update
- apt upgrade -y
- 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: $CLANG_BUILD_ENABLE == "True"
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
when: manual
allow_failure: true
stage: pre-build
script:
- echo "Starting clang jobs"
# CLANG 6
weekly-build-clang-6-debug:
extends: .weekly-clang-ubuntu18.04
needs: ["weekly-clang"]
stage: build
variables:
CLANG: "6.0"
MODE: debug
weekly-build-clang-6-default:
extends: .weekly-clang-ubuntu18.04
needs: ["weekly-clang"]
stage: build
variables:
CLANG: "6.0"
MODE: default
weekly-build-clang-6-optimized:
extends: .weekly-clang-ubuntu18.04
needs: ["weekly-clang"]
stage: build
variables:
CLANG: "6.0"
MODE: optimized
weekly-test-clang-6-default:
extends: .weekly-clang-ubuntu18.04
stage: test
needs: ["weekly-build-clang-6-default"]
cache:
key: "ccache-weekly-build-clang-6-default"
paths:
- $CCACHE_BASEDIR_VALUE/
variables:
CLANG: "6.0"
MODE: default
weekly-test-clang-6-optimized:
extends: .weekly-clang-ubuntu18.04
stage: test
needs: ["weekly-build-clang-6-optimized"]
cache:
key: "ccache-weekly-build-clang-6-optimized"
paths:
- $CCACHE_BASEDIR_VALUE/
variables:
CLANG: "6.0"
MODE: optimized
# CLANG 10
weekly-build-clang-10-debug:
extends: .weekly-clang-ubuntu18.04
needs: ["weekly-clang"]
stage: build
variables:
CLANG: 10
MODE: debug
weekly-build-clang-10-default:
extends: .weekly-clang-ubuntu18.04
needs: ["weekly-clang"]
stage: build
variables:
CLANG: 10
MODE: default
weekly-build-clang-10-optimized:
extends: .weekly-clang-ubuntu18.04
needs: ["weekly-clang"]
stage: build
variables:
CLANG: 10
MODE: optimized
weekly-test-clang-10-default:
extends: .weekly-clang-ubuntu18.04
stage: test
needs: ["weekly-build-clang-10-default"]
cache:
key: "ccache-weekly-build-clang-10-default"
paths:
- $CCACHE_BASEDIR_VALUE/
variables:
CLANG: 10
MODE: default
weekly-test-clang-10-optimized:
extends: .weekly-clang-ubuntu18.04
stage: test
needs: ["weekly-build-clang-10-optimized"]
cache:
key: "ccache-weekly-build-clang-10-optimized"
paths:
- $CCACHE_BASEDIR_VALUE/
variables:
CLANG: 10
MODE: optimized
# CLANG 11
weekly-build-clang-11-debug:
extends: .weekly-clang-ubuntu22.04
needs: ["weekly-clang"]
stage: build
variables:
CLANG: 11
MODE: debug
weekly-build-clang-11-default:
extends: .weekly-clang-ubuntu22.04
needs: ["weekly-clang"]
stage: build
variables:
CLANG: 11
MODE: default
weekly-build-clang-11-optimized:
extends: .weekly-clang-ubuntu22.04
needs: ["weekly-clang"]
stage: build
variables:
CLANG: 11
MODE: optimized
weekly-test-clang-11-default:
extends: .weekly-clang-ubuntu22.04
stage: test
needs: ["weekly-build-clang-11-default"]
cache:
key: "ccache-weekly-build-clang-11-default"
paths:
- $CCACHE_BASEDIR_VALUE/
variables:
CLANG: 11
MODE: default
weekly-test-clang-11-optimized:
extends: .weekly-clang-ubuntu22.04
stage: test
needs: ["weekly-build-clang-11-optimized"]
cache:
key: "ccache-weekly-build-clang-11-optimized"
paths:
- $CCACHE_BASEDIR_VALUE/
variables:
CLANG: 11
MODE: optimized
# CLANG 14
weekly-build-clang-14-debug:
extends: .weekly-clang-ubuntu22.04
needs: ["weekly-clang"]
stage: build
variables:
CLANG: 14
MODE: debug
weekly-build-clang-14-default:
extends: .weekly-clang-ubuntu22.04
needs: ["weekly-clang"]
stage: build
variables:
CLANG: 14
MODE: default
weekly-build-clang-14-optimized:
extends: .weekly-clang-ubuntu22.04
needs: ["weekly-clang"]
stage: build
variables:
CLANG: 14
MODE: optimized
weekly-test-clang-14-default:
extends: .weekly-clang-ubuntu22.04
stage: test
needs: ["weekly-build-clang-14-default"]
cache:
key: "ccache-weekly-build-clang-14-default"
paths:
- $CCACHE_BASEDIR_VALUE/
variables:
CLANG: 14
MODE: default
weekly-test-clang-14-optimized:
extends: .weekly-clang-ubuntu22.04
stage: test
needs: ["weekly-build-clang-14-optimized"]
cache:
key: "ccache-weekly-build-clang-14-optimized"
paths:
- $CCACHE_BASEDIR_VALUE/
variables:
CLANG: 14
MODE: optimized