-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy path.cirrus.yml
103 lines (98 loc) · 5.94 KB
/
.cirrus.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# Use, modification, and distribution are
# subject to the Boost Software License, Version 1.0. (See accompanying
# file LICENSE.txt)
#
# Copyright René Ferdinand Rivera Morell 2020-2021.
# Configuration for https://cirrus-ci.org/.
linux_task:
# All the GCC's and Clang's available for Ubuntu Bionic.
matrix:
- { name: 'Linux, GCC 10', env: { CXX: g++-10, PACKAGES: g++-10 }, container: { image: 'ubuntu:18.04' } }
- { name: 'Linux, GCC 9', env: { CXX: g++-9, PACKAGES: g++-9 }, container: { image: 'ubuntu:18.04' } }
- { name: 'Linux, GCC 8', env: { CXX: g++-8, PACKAGES: g++-8 }, container: { image: 'ubuntu:18.04' } }
- { name: 'Linux, GCC 7', env: { CXX: g++-7, PACKAGES: g++-7 }, container: { image: 'ubuntu:18.04' } }
- { name: 'Linux, GCC 6', env: { CXX: g++-6, PACKAGES: g++-6 }, container: { image: 'ubuntu:18.04' } }
- { name: 'Linux, GCC 5', env: { CXX: g++-5, PACKAGES: g++-5 }, container: { image: 'ubuntu:18.04' } }
- { name: 'Linux, Clang 10', env: { CXX: clang++-10, PACKAGES: clang-10, LLVM_OS: bionic, LLVM_VER: 10 }, container: { image: 'ubuntu:18.04' } }
- { name: 'Linux, Clang 9', env: { CXX: clang++-9, PACKAGES: clang-9, LLVM_OS: bionic, LLVM_VER: 9 }, container: { image: 'ubuntu:18.04' } }
- { name: 'Linux, Clang 8', env: { CXX: clang++-8, PACKAGES: clang-8, LLVM_OS: bionic, LLVM_VER: 8 }, container: { image: 'ubuntu:18.04' } }
- { name: 'Linux, Clang 7', env: { CXX: clang++-7, PACKAGES: clang-7, LLVM_OS: bionic, LLVM_VER: 7 }, container: { image: 'ubuntu:18.04' } }
- { name: 'Linux, Clang 6', env: { CXX: clang++-6.0, PACKAGES: clang-6.0, LLVM_OS: bionic, LLVM_VER: 6.0 }, container: { image: 'ubuntu:18.04' } }
- { name: 'Linux, Clang 5', env: { CXX: clang++-5.0, PACKAGES: clang-5.0, LLVM_OS: bionic, LLVM_VER: 5.0 }, container: { image: 'ubuntu:18.04' } }
# Need some extra container setup.
setup_script: [
"apt-get -o Acquire::Retries=3 update && apt-get -o Acquire::Retries=3 install -y sudo software-properties-common wget apt-transport-https && rm -rf /var/lib/apt/lists/*"
]
# The install runs a helper script to do the install and any setup.
install_script: [
"uname -a",
"./.ci_playground/linux-cxx-install.sh"
]
compile_script: [
"${CXX} --version",
"${CXX} ${CXXFLAGS} -v src/main.cpp"
]
xcode_task:
matrix:
- { name: 'macOS, Xcode 11.4.1', env: { CXX: clang++, XCODE_VERSION: 11.4.1 }, osx_instance: { image: 'catalina-xcode-11.4.1' } }
# We just run the common install script, as the env is already set up.
install_script: [
"set -e",
"uname -a",
"./.ci_playground/macos-xcode-install.sh"
]
# For consistent Xcode building we specify the sysroot to point to the
# symlink that xcode-install utility created. This was we always build
# with the specific SDK for the compiler being used.
compile_script: [
"set -e",
"${CXX} --version",
"${CXX} ${CXXFLAGS} -v --sysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk src/main.cpp"
]
freebsd_task:
# All the GCC's and Clang's currently supported by FreeBSD ports.
matrix:
- { name: 'FreeBSD, GCC 11', env: { CXX: 'g++11', PACKAGE: 'gcc11-devel' }, freebsd_instance: { image_family: 'freebsd-12-2' } }
- { name: 'FreeBSD, GCC 10', env: { CXX: 'g++10', PACKAGE: 'gcc10-devel' }, freebsd_instance: { image_family: 'freebsd-12-2' } }
- { name: 'FreeBSD, GCC 9', env: { CXX: 'g++9', PACKAGE: 'gcc9-devel' }, freebsd_instance: { image_family: 'freebsd-12-2' } }
- { name: 'FreeBSD, GCC 8', env: { CXX: 'g++8', PACKAGE: 'gcc8-devel' }, freebsd_instance: { image_family: 'freebsd-12-2' } }
- { name: 'FreeBSD, GCC 7', env: { CXX: 'g++7', PACKAGE: 'gcc7' }, freebsd_instance: { image_family: 'freebsd-12-2' } }
- { name: 'FreeBSD, Clang 10', env: { CXX: 'clang++10', PACKAGE: 'llvm10' }, freebsd_instance: { image_family: 'freebsd-12-2' } }
- { name: 'FreeBSD, Clang 9', env: { CXX: 'clang++90', PACKAGE: 'llvm90' }, freebsd_instance: { image_family: 'freebsd-12-2' } }
- { name: 'FreeBSD, Clang 8', env: { CXX: 'clang++80', PACKAGE: 'llvm80' }, freebsd_instance: { image_family: 'freebsd-12-2' } }
- { name: 'FreeBSD, Clang 7', env: { CXX: 'clang++70', PACKAGE: 'llvm70' }, freebsd_instance: { image_family: 'freebsd-12-2' } }
- { name: 'FreeBSD, Clang 6', env: { CXX: 'clang++60', PACKAGE: 'llvm60' }, freebsd_instance: { image_family: 'freebsd-12-2' } }
# To install with ports we need to initialize the package manager. To avoid
# confirmation prompts we need to set an env var.
install_script: [
"uname -a",
"env ASSUME_ALWAYS_YES=YES pkg bootstrap",
"env ASSUME_ALWAYS_YES=YES pkg install ${PACKAGE}"
]
# Compiling is simply calling the compiler.
compile_script: [
"${CXX} --version",
"${CXX} ${CXXFLAGS} -v src/main.cpp"
]
# Unfortunately choco installs a package that requires a reboot. Which is
# something that can't work in the containers Cirrus uses. Hence this is
# disabled entirely. But left here for reference and information.
# msvc_task:
# # Cirrus doesn't have preinstalled VS version. We specify info to install
# # VS with Chocolatey.
# matrix:
# - { name: 'Windows, VS 2019', env: { CXX: cl.exe, CXXFLAGS: /Femain, VSWHERE_VERSION: '[16.0,17.0)', PLATFORM: x64, CHOCO_CONFIG: vs2019 } }
# - { name: 'Windows, VS 2017', env: { CXX: cl.exe, CXXFLAGS: /Femain, VSWHERE_VERSION: '[15.0,16.0)', PLATFORM: x64, CHOCO_CONFIG: vs2017 } }
# windows_container:
# image: cirrusci/windowsservercore:2019
# # Install VS and vswhere. For VS we use a predefined configuration that
# # define the packages and arguments needed.
# install_script: [
# "choco install .ci_playground/choco-%CHOCO_CONFIG%.config -y --ignore-detected-reboot --no-progress",
# "choco install vswhere -y --no-progress"
# ]
# # To compile we need to set up the compile environment.
# compile_script: [
# ".ci_playground/windows-msvc-setup.cmd",
# "\"%CXX%\" %CXXFLAGS% src/main.cpp"
# ]