-
Notifications
You must be signed in to change notification settings - Fork 19
/
.drone.star
118 lines (109 loc) · 7.6 KB
/
.drone.star
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# Use, modification, and distribution are
# subject to the Boost Software License, Version 1.0. (See accompanying
# file LICENSE.txt)
#
# Copyright Rene Rivera 2020.
# Copyright Alexander Grund 2022.
# For Drone CI we use the Starlark scripting language to reduce duplication.
# As the yaml syntax for Drone CI is rather limited.
# Base environment for all jobs
globalenv={'B2_CI_VERSION': '1', 'B2_VARIANT': 'release'}
# Wrapper function to apply the globalenv to all jobs
def job(
# job specific environment options
env={},
**kwargs):
real_env = dict(globalenv)
real_env.update(env)
return job_impl(env=real_env, **kwargs)
def main(ctx):
return [
job(compiler='clang-3.5', cxxstd='03,11', os='ubuntu-16.04'),
job(compiler='clang-3.6', cxxstd='03,11,14', os='ubuntu-16.04'),
job(compiler='clang-3.8', cxxstd='03,11,14', os='ubuntu-16.04'),
job(compiler='clang-3.9', cxxstd='03,11,14', os='ubuntu-18.04'),
job(compiler='clang-4.0', cxxstd='03,11,14', os='ubuntu-18.04'),
job(compiler='clang-5.0', cxxstd='03,11,14,1z', os='ubuntu-18.04'),
job(compiler='clang-6.0', cxxstd='03,11,14,17', os='ubuntu-18.04'),
job(compiler='clang-7', cxxstd='03,11,14,17', os='ubuntu-18.04'),
job(compiler='clang-8', cxxstd='03,11,14,17,2a', os='ubuntu-18.04'),
job(compiler='clang-9', cxxstd='03,11,14,17,2a', os='ubuntu-18.04'),
job(compiler='clang-10', cxxstd='03,11,14,17,2a', os='ubuntu-18.04'),
job(compiler='clang-11', cxxstd='03,11,14,17,2a', os='ubuntu-22.04'),
job(compiler='clang-12', cxxstd='03,11,14,17,20', os='ubuntu-22.04'),
job(compiler='clang-13', cxxstd='03,11,14,17,20,2b', os='ubuntu-22.04'),
job(compiler='clang-14', cxxstd='03,11,14,17,20,2b', os='ubuntu-22.04'),
job(compiler='clang-15', cxxstd='03,11,14,17,20,2b', os='ubuntu-22.04', add_llvm=True),
job(compiler='gcc-4.7', cxxstd='03,11', os='ubuntu-16.04'),
job(compiler='gcc-4.8', cxxstd='03,11', os='ubuntu-16.04'),
job(compiler='gcc-4.9', cxxstd='03,11', os='ubuntu-16.04'),
job(compiler='gcc-5', cxxstd='03,11,14,1z', os='ubuntu-18.04'),
job(compiler='gcc-6', cxxstd='03,11,14,1z', os='ubuntu-18.04'),
job(compiler='gcc-7', cxxstd='03,11,14,1z', os='ubuntu-18.04'),
job(compiler='gcc-8', cxxstd='03,11,14,17,2a', os='ubuntu-18.04'),
job(compiler='gcc-9', cxxstd='03,11,14,17,2a', os='ubuntu-18.04'),
job(compiler='gcc-10', cxxstd='03,11,14,17,20', os='ubuntu-22.04'),
job(compiler='gcc-11', cxxstd='03,11,14,17,20,2b', os='ubuntu-22.04'),
job(compiler='gcc-12', cxxstd='03,11,14,17,20,2b', os='ubuntu-22.04'),
job(name='Coverage', buildtype='codecov',
compiler='gcc-8', cxxstd='03,11,14,17,2a', os='ubuntu-18.04'),
job(name='Coverity Scan', buildtype='coverity',
compiler='clang', cxxstd=None, os='ubuntu-18.04', packages=''),
# Sanitizers
job(name='ASAN', asan=True,
compiler='gcc-12', cxxstd='03,11,14,17,20', os='ubuntu-22.04'),
job(name='UBSAN', ubsan=True,
compiler='gcc-12', cxxstd='03,11,14,17,20', os='ubuntu-22.04'),
job(name='TSAN', tsan=True,
compiler='gcc-12', cxxstd='03,11,14,17,20', os='ubuntu-22.04'),
job(name='Clang 14 w/ sanitizers', asan=True, ubsan=True,
compiler='clang-14', cxxstd='03,11,14,17,20', os='ubuntu-22.04'),
job(name='Clang 11 libc++ w/ sanitizers', asan=True, ubsan=True, # libc++-11 is the latest working with ASAN: https://github.com/llvm/llvm-project/issues/59432
compiler='clang-11', cxxstd='03,11,14,17,20', os='ubuntu-20.04', stdlib='libc++', install='libc++-11-dev libc++abi-11-dev'),
job(name='Valgrind', valgrind=True,
compiler='clang-6.0', cxxstd='03,11,14,1z', os='ubuntu-18.04', install='libc6-dbg libc++-dev libstdc++-8-dev'),
# libc++
job(compiler='clang-6.0', cxxstd='03,11,14,17,2a', os='ubuntu-18.04', stdlib='libc++', install='libc++-dev libc++abi-dev'),
job(compiler='clang-7', cxxstd='03,11,14,17,2a', os='ubuntu-20.04', stdlib='libc++', install='libc++-7-dev libc++abi-7-dev'),
job(compiler='clang-8', cxxstd='03,11,14,17,2a', os='ubuntu-20.04', stdlib='libc++', install='libc++-8-dev libc++abi-8-dev'),
job(compiler='clang-9', cxxstd='03,11,14,17,2a', os='ubuntu-20.04', stdlib='libc++', install='libc++-9-dev libc++abi-9-dev'),
job(compiler='clang-10', cxxstd='03,11,14,17,20', os='ubuntu-20.04', stdlib='libc++', install='libc++-10-dev libc++abi-10-dev'),
job(compiler='clang-11', cxxstd='03,11,14,17,20', os='ubuntu-20.04', stdlib='libc++', install='libc++-11-dev libc++abi-11-dev'),
job(compiler='clang-12', cxxstd='03,11,14,17,20', os='ubuntu-22.04', stdlib='libc++', install='libc++-12-dev libc++abi-12-dev libunwind-12-dev'),
job(compiler='clang-13', cxxstd='03,11,14,17,20', os='ubuntu-22.04', stdlib='libc++', install='libc++-13-dev libc++abi-13-dev'),
job(compiler='clang-14', cxxstd='03,11,14,17,20', os='ubuntu-22.04', stdlib='libc++', install='libc++-14-dev libc++abi-14-dev'),
job(compiler='clang-15', cxxstd='03,11,14,17,20', os='ubuntu-22.04', stdlib='libc++', install='libc++-15-dev libc++abi-15-dev', add_llvm=True),
# FreeBSD
job(compiler='clang-10', cxxstd='03,11,14,17,20', os='freebsd-13.1'),
job(compiler='clang-15', cxxstd='03,11,14,17,20', os='freebsd-13.1'),
job(compiler='gcc-11', cxxstd='03,11,14,17,20', os='freebsd-13.1', linkflags='-Wl,-rpath=/usr/local/lib/gcc11'),
# OSX
job(compiler='clang', cxxstd='03,11,14,17,2a', os='osx-xcode-10.1'),
job(compiler='clang', cxxstd='03,11,14,17,2a', os='osx-xcode-10.3'),
job(compiler='clang', cxxstd='03,11,14,17,2a', os='osx-xcode-11.1'),
job(compiler='clang', cxxstd='03,11,14,17,2a', os='osx-xcode-11.7'),
job(compiler='clang', cxxstd='03,11,14,17,2a', os='osx-xcode-12'),
job(compiler='clang', cxxstd='03,11,14,17,20', os='osx-xcode-12.5.1'),
job(compiler='clang', cxxstd='03,11,14,17,20', os='osx-xcode-13.0'),
job(compiler='clang', cxxstd='03,11,14,17,20', os='osx-xcode-13.4.1'),
job(compiler='clang', cxxstd='03,11,14,17,20,2b', os='osx-xcode-14.0'),
job(compiler='clang', cxxstd='03,11,14,17,20,2b', os='osx-xcode-14.3.1'),
job(compiler='clang', cxxstd='03,11,14,17,20,2b', os='osx-xcode-15.0.1'),
# ARM64
job(compiler='clang-12', cxxstd='03,11,14,17,20', os='ubuntu-20.04', arch='arm64', add_llvm=True),
job(compiler='gcc-11', cxxstd='03,11,14,17,20', os='ubuntu-20.04', arch='arm64'),
# S390x
job(compiler='clang-12', cxxstd='03,11,14,17,20', os='ubuntu-20.04', arch='s390x', add_llvm=True),
job(compiler='gcc-11', cxxstd='03,11,14,17,20', os='ubuntu-20.04', arch='s390x'),
# Windows
job(compiler='msvc-14.0', cxxstd=None, os='windows', env={'B2_DONT_EMBED_MANIFEST': 1}),
job(compiler='msvc-14.1', cxxstd=None, os='windows'),
job(compiler='msvc-14.2', cxxstd=None, os='windows'),
job(compiler='msvc-14.3', cxxstd=None, os='windows'),
job(compiler='msvc-14.0', cxxstd='14,17,20', os='windows', env={'B2_DONT_EMBED_MANIFEST': 1}),
job(compiler='msvc-14.1', cxxstd='14,17,20', os='windows'),
job(compiler='msvc-14.2', cxxstd='14,17,20', os='windows'),
job(compiler='msvc-14.3', cxxstd='14,17,20,latest', os='windows'),
]
# from https://github.com/boostorg/boost-ci
load("@boost_ci//ci/drone/:functions.star", "linux_cxx", "windows_cxx", "osx_cxx", "freebsd_cxx", "job_impl")