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

341 lines
7.0 KiB
YAML

# NS3 CI script for GCC
# Any scheduled pipeline for GCC should define a variable, named
# "RELEASE", that has a value "weekly". Also, a variable "GCC" should be set
# to True.
# We support from 8 to the latest version. Check if everything builds fine
# under debug, default, and optimized, on Linux.
.weekly-gcc-base:
extends: .base-build
rules:
- if: $RELEASE == "weekly"
- if: $UBUNTU == "True"
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
allow_failure: true
before_script:
- apt update
- apt upgrade -y
- DEBIAN_FRONTEND=noninteractive apt install -y
$COMPILER cmake ninja-build ccache
python3 python3-dev
gsl-bin libgsl-dev $LIBGSL
libboost-all-dev
libgtk-3-dev
libfl-dev
libxml2 libxml2-dev
libopenmpi-dev openmpi-bin openmpi-common openmpi-doc
libsqlite3-dev sqlite3
libeigen3-dev
qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
ssh
variables:
ENABLE_MPI: --enable-mpi
weekly-gcc:
rules:
- if: $RELEASE == "weekly"
- if: $UBUNTU == "True"
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
when: manual
allow_failure: true
stage: pre-build
script:
- echo "Starting GCC jobs"
# GCC 8
weekly-build-gcc-8-debug:
extends: .weekly-gcc-base
needs: ["weekly-gcc"]
image: ubuntu:20.04
stage: build
variables:
MODE: debug
COMPILER: g++-8
LIBGSL: libgsl23
weekly-build-gcc-8-default:
extends: .weekly-gcc-base
needs: ["weekly-gcc"]
image: ubuntu:20.04
stage: build
variables:
MODE: default
COMPILER: g++-8
LIBGSL: libgsl23
weekly-build-gcc-8-optimized:
extends: .weekly-gcc-base
needs: ["weekly-gcc"]
image: ubuntu:20.04
stage: build
variables:
MODE: optimized
COMPILER: g++-8
LIBGSL: libgsl23
weekly-test-gcc-8-default:
extends: .weekly-gcc-base
image: ubuntu:20.04
stage: test
needs: ["weekly-build-gcc-8-default"]
cache:
key: "ccache-weekly-build-gcc-8-default"
paths:
- $CCACHE_BASEDIR_VALUE/
variables:
MODE: default
COMPILER: g++-8
LIBGSL: libgsl23
weekly-test-gcc-8-optimized:
extends: .weekly-gcc-base
image: ubuntu:20.04
stage: test
needs: ["weekly-build-gcc-8-optimized"]
cache:
key: "ccache-weekly-build-gcc-8-optimized"
paths:
- $CCACHE_BASEDIR_VALUE/
variables:
MODE: optimized
COMPILER: g++-8
LIBGSL: libgsl23
# GCC 9
weekly-build-gcc-9-debug:
extends: .weekly-gcc-base
needs: ["weekly-gcc"]
image: ubuntu:20.04
stage: build
variables:
MODE: debug
COMPILER: g++-9
LIBGSL: libgsl23
weekly-build-gcc-9-default:
extends: .weekly-gcc-base
needs: ["weekly-gcc"]
image: ubuntu:20.04
stage: build
variables:
MODE: default
COMPILER: g++-9
LIBGSL: libgsl23
weekly-build-gcc-9-optimized:
extends: .weekly-gcc-base
needs: ["weekly-gcc"]
image: ubuntu:20.04
stage: build
variables:
MODE: optimized
COMPILER: g++-9
LIBGSL: libgsl23
weekly-test-gcc-9-default:
extends: .weekly-gcc-base
image: ubuntu:20.04
stage: test
needs: ["weekly-build-gcc-9-default"]
cache:
key: "ccache-weekly-build-gcc-9-default"
paths:
- $CCACHE_BASEDIR_VALUE/
variables:
MODE: default
COMPILER: g++-9
LIBGSL: libgsl23
weekly-test-gcc-9-optimized:
extends: .weekly-gcc-base
image: ubuntu:20.04
stage: test
needs: ["weekly-build-gcc-9-optimized"]
cache:
key: "ccache-weekly-build-gcc-9-optimized"
paths:
- $CCACHE_BASEDIR_VALUE/
variables:
MODE: optimized
COMPILER: g++-9
LIBGSL: libgsl23
# GCC 10
weekly-build-gcc-10-debug:
extends: .weekly-gcc-base
needs: ["weekly-gcc"]
image: ubuntu:20.04
stage: build
variables:
MODE: debug
COMPILER: g++-10
LIBGSL: libgsl23
weekly-build-gcc-10-default:
extends: .weekly-gcc-base
needs: ["weekly-gcc"]
image: ubuntu:20.04
stage: build
variables:
MODE: default
COMPILER: g++-10
LIBGSL: libgsl23
weekly-build-gcc-10-optimized:
extends: .weekly-gcc-base
needs: ["weekly-gcc"]
image: ubuntu:20.04
stage: build
variables:
MODE: optimized
COMPILER: g++-10
LIBGSL: libgsl23
weekly-test-gcc-10-default:
extends: .weekly-gcc-base
image: ubuntu:20.04
stage: test
needs: ["weekly-build-gcc-10-default"]
cache:
key: "ccache-weekly-build-gcc-10-default"
paths:
- $CCACHE_BASEDIR_VALUE/
variables:
MODE: default
COMPILER: g++-10
LIBGSL: libgsl23
weekly-test-gcc-10-optimized:
extends: .weekly-gcc-base
image: ubuntu:20.04
stage: test
needs: ["weekly-build-gcc-10-optimized"]
cache:
key: "ccache-weekly-build-gcc-10-optimized"
paths:
- $CCACHE_BASEDIR_VALUE/
variables:
MODE: optimized
COMPILER: g++-10
LIBGSL: libgsl23
# GCC 11
weekly-build-gcc-11-debug:
extends: .weekly-gcc-base
needs: ["weekly-gcc"]
image: ubuntu:22.04
stage: build
variables:
MODE: debug
COMPILER: g++-11
LIBGSL: libgsl27
weekly-build-gcc-11-default:
extends: .weekly-gcc-base
needs: ["weekly-gcc"]
image: ubuntu:22.04
stage: build
variables:
MODE: default
COMPILER: g++-11
LIBGSL: libgsl27
weekly-build-gcc-11-optimized:
extends: .weekly-gcc-base
needs: ["weekly-gcc"]
image: ubuntu:22.04
stage: build
variables:
MODE: optimized
COMPILER: g++-11
LIBGSL: libgsl27
weekly-test-gcc-11-default:
extends: .weekly-gcc-base
image: ubuntu:22.04
stage: test
needs: ["weekly-build-gcc-11-default"]
cache:
key: "ccache-weekly-build-gcc-11-default"
paths:
- $CCACHE_BASEDIR_VALUE/
variables:
MODE: default
COMPILER: g++-11
LIBGSL: libgsl27
weekly-test-gcc-11-optimized:
extends: .weekly-gcc-base
image: ubuntu:22.04
stage: test
needs: ["weekly-build-gcc-11-optimized"]
cache:
key: "ccache-weekly-build-gcc-11-optimized"
paths:
- $CCACHE_BASEDIR_VALUE/
variables:
MODE: optimized
COMPILER: g++-11
LIBGSL: libgsl27
# GCC 12
weekly-build-gcc-12-debug:
extends: .weekly-gcc-base
needs: ["weekly-gcc"]
image: ubuntu:22.04
stage: build
variables:
MODE: debug
COMPILER: g++-12
LIBGSL: libgsl27
weekly-build-gcc-12-default:
extends: .weekly-gcc-base
needs: ["weekly-gcc"]
image: ubuntu:22.04
stage: build
variables:
MODE: default
COMPILER: g++-12
LIBGSL: libgsl27
weekly-build-gcc-12-optimized:
extends: .weekly-gcc-base
needs: ["weekly-gcc"]
image: ubuntu:22.04
stage: build
variables:
MODE: optimized
COMPILER: g++-12
LIBGSL: libgsl27
weekly-test-gcc-12-default:
extends: .weekly-gcc-base
image: ubuntu:22.04
stage: test
needs: ["weekly-build-gcc-12-default"]
cache:
key: "ccache-weekly-build-gcc-12-default"
paths:
- $CCACHE_BASEDIR_VALUE/
variables:
MODE: default
COMPILER: g++-12
LIBGSL: libgsl27
weekly-test-gcc-12-optimized:
extends: .weekly-gcc-base
image: ubuntu:22.04
stage: test
needs: ["weekly-build-gcc-12-optimized"]
cache:
key: "ccache-weekly-build-gcc-12-optimized"
paths:
- $CCACHE_BASEDIR_VALUE/
variables:
MODE: optimized
COMPILER: g++-12
LIBGSL: libgsl27