summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2023-05-02 13:06:18 -0400
committerDavid Robillard <d@drobilla.net>2023-05-02 13:34:31 -0400
commit1e5784f4828086878f4eb98f08c99ccb796ca466 (patch)
tree61e6ab8b7afb66aa66e7ee76cf3f52b831b79053
parentb23035e1706d1a828e7698abcc76cdac37e92b72 (diff)
downloadraul-1e5784f4828086878f4eb98f08c99ccb796ca466.tar.gz
raul-1e5784f4828086878f4eb98f08c99ccb796ca466.tar.bz2
raul-1e5784f4828086878f4eb98f08c99ccb796ca466.zip
Merge debug and release rows on CI
Although this parallelizes more or less perfectly, it's much less expensive overall to combine the builds. Spinning up images is expensive, and we're not in that much of a hurry. Being cheaper overall, this speeds up the sequential local test run significantly.
-rw-r--r--.gitlab-ci.yml114
1 files changed, 51 insertions, 63 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6191bba..9c32bfc 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,106 +1,94 @@
-# Copyright 2019-2022 David Robillard <d@drobilla.net>
+# Copyright 2019-2023 David Robillard <d@drobilla.net>
# SPDX-License-Identifier: 0BSD OR GPL-3.0-or-later
-arm32_dbg:
- image: lv2plugin/debian-arm32
- script:
- - meson setup build --cross-file=/usr/share/meson/cross/arm-linux-gnueabihf.ini -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true
- - ninja -C build test
-
-arm32_rel:
- image: lv2plugin/debian-arm32
- script:
- - meson setup build --cross-file=/usr/share/meson/cross/arm-linux-gnueabihf.ini -Dbuildtype=release -Dwarning_level=3 -Dwerror=true
- - ninja -C build test
-
-
-arm64_dbg:
- image: lv2plugin/debian-arm64
- script:
- - meson setup build --cross-file=/usr/share/meson/cross/aarch64-linux-gnu.ini -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true
- - ninja -C build test
-
-arm64_rel:
- image: lv2plugin/debian-arm64
- script:
- - meson setup build --cross-file=/usr/share/meson/cross/aarch64-linux-gnu.ini -Dbuildtype=release -Dwarning_level=3 -Dwerror=true
- - ninja -C build test
-
-
-x32_dbg:
- image: lv2plugin/debian-x32
- script:
- - meson setup build --cross-file=/usr/share/meson/cross/i686-linux-gnu.ini -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true
- - ninja -C build test
-
-x32_rel:
- image: lv2plugin/debian-x32
+default:
+ image: lv2plugin/debian-x64
script:
- - meson setup build --cross-file=/usr/share/meson/cross/i686-linux-gnu.ini -Dbuildtype=release -Dwarning_level=3 -Dwerror=true
+ - meson setup build -Dwerror=true
- ninja -C build test
-
-x64_dbg:
+dev:
image: lv2plugin/debian-x64
script:
- meson setup build -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true -Db_coverage=true
- ninja -C build test
- ninja -C build coverage-html
+ - meson configure -Dbuildtype=release -Db_coverage=false build
+ - ninja -C build test
coverage: '/ *lines\.*: \d+\.\d+.*/'
artifacts:
paths:
- build/meson-logs/coveragereport
-x64_rel:
- image: lv2plugin/debian-x64
- script:
- - meson setup build -Dbuildtype=release -Dwarning_level=3 -Dwerror=true
- - ninja -C build test
-
-
-x64_static:
+static:
image: lv2plugin/debian-x64
script:
- meson setup build -Ddefault_library=static -Dwarning_level=3 -Dwerror=true
- ninja -C build test
-
-x64_sanitize:
+sanitize:
image: lv2plugin/debian-x64-clang
script:
- - meson setup build -Db_lundef=false -Dbuildtype=plain -Dwarning_level=3 -Dwerror=true
+ script:
+ - meson setup build -Db_lundef=false -Dbuildtype=plain -Dwarning_level=3 -Dwerror=true -Dcpp_args="-fno-sanitize-recover=all -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero" -Dcpp_link_args="-fno-sanitize-recover=all -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero"
+ - ninja -C build test
+ - meson configure build -Dbuildtype=debugoptimized -Dcpp_args="" -Dcpp_link_args=""
+ - meson configure build -Db_sanitize=memory
- ninja -C build test
variables:
CXX: "clang++"
- CXXFLAGS: "-fno-sanitize-recover=all -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability"
- LDFLAGS: "-fno-sanitize-recover=all -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability"
+# Linux Platforms
-mac_dbg:
- tags: [macos]
+arm32:
+ image: lv2plugin/debian-arm32
script:
- - meson setup build -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true
+ - meson setup build --cross-file=/usr/share/meson/cross/arm-linux-gnueabihf.ini -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true
+ - ninja -C build test
+ - meson configure -Dbuildtype=release build
- ninja -C build test
-mac_rel:
- tags: [macos]
+arm64:
+ image: lv2plugin/debian-arm64
script:
- - meson setup build -Dbuildtype=release -Dwarning_level=3 -Dwerror=true
+ - meson setup build --cross-file=/usr/share/meson/cross/aarch64-linux-gnu.ini -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true
+ - ninja -C build test
+ - meson configure -Dbuildtype=release build
- ninja -C build test
+x32:
+ image: lv2plugin/debian-x32
+ script:
+ - meson setup build --cross-file=/usr/share/meson/cross/i686-linux-gnu.ini -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true
+ - ninja -C build test
+ - meson configure -Dbuildtype=release build
+ - ninja -C build test
-win_dbg:
- tags: [windows,meson]
+# Non-Linux/Docker rows (not hosted)
+
+freebsd:
+ tags: [freebsd,meson]
script:
- meson setup build -Dbuildtype=debug -Dwarning_level=everything -Dwerror=true
- ninja -C build test
+ - meson configure -Dbuildtype=release build
+ - ninja -C build test
-win_rel:
- tags: [windows,meson]
+mac:
+ tags: [macos]
script:
- - meson setup build -Dbuildtype=release -Dwarning_level=everything -Dwerror=true
+ - meson setup build -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true
+ - ninja -C build test
+ - meson configure -Dbuildtype=release build
- ninja -C build test
+win:
+ tags: [windows,meson]
+ script:
+ - meson setup build -Dbuildtype=debug -Dwarning_level=everything -Dwerror=true
+ - ninja -C build test
+ - meson configure -Dbuildtype=release build
+ - ninja -C build test
pages:
stage: deploy
@@ -109,7 +97,7 @@ pages:
- mv build/meson-logs/coveragereport/ .public/coverage
- mv .public public
needs:
- - x64_dbg
+ - dev
artifacts:
paths:
- public