forked from simd-everywhere/simde
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.drone.star
119 lines (108 loc) · 3.62 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
119
# -*- Python -*-
# Drone CI Starlark configuration file.
# https://docs.drone.io/pipeline/scripting/starlark/
# Run `drone starlark convert --stdout` to verify `.drone.star`.
def main(ctx):
jobs = []
for arch in ['aarch64', 'armv8', 'armv7']:
drone_arch = 'arm'
if arch == 'aarch64':
drone_arch = 'arm64'
for compiler in ['gcc', 'clang']:
cc = compiler
cxx = compiler + '++'
compiler_flags = []
packages = ['ninja-build', 'git-core', 'python3-pip', 'gcovr']
if arch == 'armv7':
compiler_flags.extend(['-march=armv7-a', '-mfpu=neon'])
elif arch == 'armv8':
compiler_flags.extend(['-march=armv8-a', '-mfpu=neon'])
elif arch == 'aarch64':
compiler_flags.extend(['-march=armv8-a+simd+crypto+crc'])
if compiler == 'gcc':
cxx = 'g++'
compiler_flags.extend(['-Wextra', '-Werror'])
packages.extend(['gcc', 'g++'])
elif compiler == 'clang':
compiler_flags.extend(['-Weverything', '-Werror'])
packages.extend(['clang'])
cflags = ' '.join(compiler_flags)
cxxflags = ' '.join(compiler_flags)
environment = {
"CC": cc,
"CXX": cxx,
"CFLAGS": cflags,
"CXXFLAGS": cxxflags,
"DEBIAN_FRONTEND": "noninteractive",
}
exclude_branches = ['master']
for provider in ['gha', 'cirrus', 'semaphore', 'circleci', 'appveyor', 'azure', 'travis']:
exclude_branches.append('ci/' + provider)
exclude_branches.append('ci/' + provider + '/**')
jobs.append({
"kind": "pipeline",
"type": "docker",
"name": compiler + ' ' + arch,
"platform": {
"os": "linux",
"arch": drone_arch
},
"steps": [
{
"name": "test",
"image": "ubuntu:bionic",
"environment": environment,
"commands": [
"cat /proc/cpuinfo",
"echo 'APT::Acquire::Retries \"3\";' > /etc/apt/apt.conf.d/80-retries",
"apt-get update -y",
"apt-get install -y " + " ".join(packages),
"pip3 install meson",
"meson build -Db_coverage=true || (cat build/meson-logs/meson-log.txt; false)",
"ninja -C build -v test || (cat build/meson-logs/testlog.txt; false)",
],
}
],
"trigger": {
"branch": {
"exclude": exclude_branches
}
},
})
# jobs.append({
# "kind": "pipeline",
# "type": "docker",
# "name": "native aliases",
# "platform": {
# "os": "linux",
# "arch": "arm64"
# },
# "steps": [
# {
# "name": "test",
# "image": "ubuntu:bionic",
# "environment": {
# "CC": "clang",
# "CXX": "clang++",
# "CFLAGS": "-march=armv8a+simd+crypto+crc -Weverything -Wextra -DSIMDE_ENABLE_NATIVE_ALIASES -DSIMDE_NATIVE_ALIASES_TESTING",
# "CXXFLAGS": "-march=armv8a+simd+crypto+crc -Weverything -Wextra -DSIMDE_ENABLE_NATIVE_ALIASES -DSIMDE_NATIVE_ALIASES_TESTING",
# "DEBIAN_FRONTEND": "noninteractive",
# },
# "commands": [
# "cat /proc/cpuinfo",
# "apt-get update -y",
# "apt-get install -y " + " ".join(['ninja-build', 'git-core', 'python3-pip', 'gcovr', 'clang', 'curl']),
# "pip3 install meson",
# "(cd test && sh -x ./native-aliases.sh)",
# "meson build -Db_coverage=true",
# "ninja -C build -v test",
# ],
# },
# ],
# "trigger": {
# "branch": {
# "exclude": exclude_branches
# }
# }
# })
return jobs