# -*- 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==0.55.1", "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==0.55.1", # "(cd test && sh -x ./native-aliases.sh)", # "meson build -Db_coverage=true", # "ninja -C build -v test", # ], # }, # ], # "trigger": { # "branch": { # "exclude": exclude_branches # } # } # }) return jobs