aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2023-04-30 19:39:49 -0400
committerDavid Robillard <d@drobilla.net>2023-04-30 21:22:35 -0400
commite3018801e077d408fd6f3e0742340eeb1f7a2bfc (patch)
tree58503a27259cf1871b18a9d709bb9dd1e97fd548
parent048f9b415670d1630c5cb25ffc4385c6a11fdc6b (diff)
downloadlv2-e3018801e077d408fd6f3e0742340eeb1f7a2bfc.tar.xz
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.yml165
1 files changed, 69 insertions, 96 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 82be218..b607d20 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,166 +1,139 @@
-# Copyright 2018-2022 David Robillard <d@drobilla.net>
+# Copyright 2018-2023 David Robillard <d@drobilla.net>
# SPDX-License-Identifier: 0BSD OR ISC
-arm32_dbg:
- image: lv2plugin/debian-arm32
- script:
- - meson setup build --cross-file=/usr/share/meson/cross/arm-linux-gnueabihf.ini -Dbuildtype=debug -Dstrict=true -Dwerror=true -Ddocs=disabled
- - 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 -Dstrict=true -Dwerror=true -Ddocs=disabled
- - 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 -Dstrict=true -Dwerror=true -Ddocs=disabled
- - 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 -Dstrict=true -Dwerror=true -Ddocs=disabled
- - 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 -Dstrict=true -Dwerror=true -Ddocs=disabled
- - 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 -Dstrict=true -Dwerror=true -Ddocs=disabled
+ - meson setup build -Dwerror=true
- ninja -C build test
-
-x64_dbg:
- image: lv2plugin/debian-x64
+dev:
+ image: lv2plugin/debian-x64-big
script:
- - meson setup build -Dbuildtype=debug -Dstrict=true -Dwerror=true -Db_coverage=true
+ - meson setup build -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true -Db_coverage=true -Dlint=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:
+static:
image: lv2plugin/debian-x64
script:
- - meson setup build -Dbuildtype=release -Dstrict=true -Dwerror=true -Ddocs=disabled
+ - meson setup build -Ddefault_library=static -Dwarning_level=3 -Dwerror=true -Ddocs=disabled
- ninja -C build test
-
-x64_static:
- image: lv2plugin/debian-x64
- script:
- - meson setup build -Ddefault_library=static -Dstrict=true -Dwerror=true -Ddocs=disabled
- - ninja -C build test
-
-
-x64_sanitize:
+sanitize:
image: lv2plugin/debian-x64-clang
script:
- - meson setup build -Db_lundef=false -Dbuildtype=plain -Dstrict=true -Dwerror=true -Ddocs=disabled
+ - meson setup build -Db_lundef=false -Dbuildtype=plain -Dwarning_level=3 -Dwerror=true -Ddocs=disabled
- ninja -C build test
variables:
CC: "clang"
CFLAGS: "-fno-sanitize-recover=all -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=unsigned-integer-overflow -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability"
LDFLAGS: "-fno-sanitize-recover=all -fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=unsigned-integer-overflow -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability"
+# Linux Distributions
-freebsd_dbg:
- tags: [freebsd,meson]
+fedora:
+ image: lv2plugin/fedora-big
script:
- - meson setup build -Dbuildtype=debug -Dstrict=true -Dwerror=true -Ddocs=disabled
+ - meson setup build -Dbuildtype=plain -Dwarning_level=3 -Ddocs=enabled -Dwerror=true
- ninja -C build test
+ variables:
+ CFLAGS: -O2 -D_FORTIFY_SOURCE=2
+ artifacts:
+ paths:
+ - build/doc
-freebsd_rel:
- tags: [freebsd,meson]
+# Linux Platforms
+
+arm32:
+ image: lv2plugin/debian-arm32
script:
- - meson setup build -Dbuildtype=release -Dstrict=true -Dwerror=true -Ddocs=disabled
+ - meson setup build --cross-file=/usr/share/meson/cross/arm-linux-gnueabihf.ini -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true -Ddocs=disabled
+ - ninja -C build test
+ - meson configure -Dbuildtype=release build
- ninja -C build test
-
-mingw32_dbg:
- image: lv2plugin/debian-mingw32
+arm64:
+ image: lv2plugin/debian-arm64
script:
- - meson setup build --cross-file=/usr/share/meson/cross/i686-w64-mingw32.ini -Dbuildtype=debug -Dstrict=true -Dwerror=true -Ddocs=disabled
+ - meson setup build --cross-file=/usr/share/meson/cross/aarch64-linux-gnu.ini -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true -Ddocs=disabled
+ - ninja -C build test
+ - meson configure -Dbuildtype=release build
- ninja -C build test
-mingw32_rel:
+mingw32:
image: lv2plugin/debian-mingw32
script:
- - meson setup build --cross-file=/usr/share/meson/cross/i686-w64-mingw32.ini -Dbuildtype=release -Dstrict=true -Dwerror=true -Ddocs=disabled
+ - meson setup build --cross-file=/usr/share/meson/cross/i686-w64-mingw32.ini -Dbuildtype=debug -Dwarning_level=everything -Dwerror=true -Ddocs=disabled
- ninja -C build test
-
-
-mingw64_dbg:
- image: lv2plugin/debian-mingw64
- script:
- - meson setup build --cross-file=/usr/share/meson/cross/x86_64-w64-mingw32.ini -Dbuildtype=debug -Dstrict=true -Dwerror=true -Ddocs=disabled
+ - meson configure -Dbuildtype=release build
- ninja -C build test
-mingw64_rel:
+mingw64:
image: lv2plugin/debian-mingw64
script:
- - meson setup build --cross-file=/usr/share/meson/cross/x86_64-w64-mingw32.ini -Dbuildtype=release -Dstrict=true -Dwerror=true -Ddocs=disabled
+ - meson setup build --cross-file=/usr/share/meson/cross/x86_64-w64-mingw32.ini -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true -Ddocs=disabled
+ - ninja -C build test
+ - meson configure -Dbuildtype=release build
- ninja -C build test
-
-mac_dbg:
- tags: [macos]
+wasm:
+ image: lv2plugin/debian-wasm
script:
- - meson setup build -Dbuildtype=debug -Dstrict=true -Dwerror=true
+ - meson setup build --cross-file=/usr/share/meson/cross/wasm.ini -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true -Ddefault_library=static -Ddocs=disabled -Dplugins=disabled
+ - ninja -C build test
+ - meson configure -Dbuildtype=release build
- ninja -C build test
-mac_rel:
- tags: [macos]
+x32:
+ image: lv2plugin/debian-x32
script:
- - meson setup build -Dbuildtype=release -Dstrict=true -Dwerror=true
+ - meson setup build --cross-file=/usr/share/meson/cross/i686-linux-gnu.ini -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true -Ddocs=disabled
+ - ninja -C build test
+ - meson configure -Dbuildtype=release build
- ninja -C build test
+# Non-Linux/Docker rows (not hosted)
-win_dbg:
- tags: [windows,meson]
+freebsd:
+ tags: [freebsd,meson]
script:
- - meson setup build -Dbuildtype=debug -Dstrict=true -Dwerror=true -Ddocs=disabled
+ - meson setup build -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true -Ddocs=disabled
- ninja -C build test
-
-win_rel:
- tags: [windows,meson]
- script:
- - meson setup build -Dbuildtype=release -Dstrict=true -Dwerror=true -Ddocs=disabled
+ - meson configure -Dbuildtype=release build
- ninja -C build test
-
-wasm_dbg:
- image: lv2plugin/debian-wasm
+mac:
+ tags: [macos]
script:
- - meson setup build --cross-file=/usr/share/meson/cross/wasm.ini -Dbuildtype=debug -Dstrict=true -Dwerror=true -Ddefault_library=static -Ddocs=disabled -Dplugins=disabled
+ - meson setup build -Dbuildtype=debug -Dwarning_level=3 -Dwerror=true
+ - ninja -C build test
+ - meson configure -Dbuildtype=release build
- ninja -C build test
-wasm_rel:
- image: lv2plugin/debian-wasm
+win:
+ tags: [windows,meson]
script:
- - meson setup build --cross-file=/usr/share/meson/cross/wasm.ini -Dbuildtype=release -Dstrict=true -Dwerror=true -Ddefault_library=static -Ddocs=disabled -Dplugins=disabled
+ - meson setup build -Dbuildtype=debug -Dwarning_level=everything -Dwerror=true -Ddocs=disabled
+ - ninja -C build test
+ - meson configure -Dbuildtype=release build
- ninja -C build test
+# Documentation
pages:
stage: deploy
script:
- mkdir -p public
- mv build/meson-logs/coveragereport/ public/coverage
- dependencies:
- - x64_dbg
+ needs:
+ - dev
artifacts:
paths:
- public