aboutsummaryrefslogtreecommitdiffstats
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2022-11-24 13:07:40 -0500
committerDavid Robillard <d@drobilla.net>2022-11-24 13:07:40 -0500
commit0b269c4de694f4e0add7606489f8ee2b3e7f5f13 (patch)
treedccdd9e74cea78ed882f392fce85aa47fce7c903 /.gitlab-ci.yml
parent88d6a4572aa136704881e4fdeeecf8bba03e49ea (diff)
downloadpugl-0b269c4de694f4e0add7606489f8ee2b3e7f5f13.tar.gz
pugl-0b269c4de694f4e0add7606489f8ee2b3e7f5f13.tar.bz2
pugl-0b269c4de694f4e0add7606489f8ee2b3e7f5f13.zip
Arrange CI rows more logically
This is organized in a way that hopefully makes more sense when viewed in a report. It also puts "basic" cases first, to ensure that tedious configuration issues are caught as early as possible when running rows sequentially for local testing.
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml127
1 files changed, 53 insertions, 74 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7151044..15fc1a3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,68 +1,38 @@
-stages:
- - build
- - deploy
+# Copyright 2018-2022 David Robillard <d@drobilla.net>
+# SPDX-License-Identifier: 0BSD OR ISC
-.build_template: &build_definition
- stage: build
+stages: [build, deploy]
-arm32_dbg:
- <<: *build_definition
- image: lv2plugin/debian-arm32
- script:
- - meson setup build --cross-file=/usr/share/meson/cross/arm-linux-gnueabihf.ini -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true
- - ninja -C build
-
-arm32_rel:
- <<: *build_definition
- image: lv2plugin/debian-arm32
- script:
- - meson setup build --cross-file=/usr/share/meson/cross/arm-linux-gnueabihf.ini -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true
- - ninja -C build
-
-
-arm64_dbg:
- <<: *build_definition
- image: lv2plugin/debian-arm64
- script:
- - meson setup build --cross-file=/usr/share/meson/cross/aarch64-linux-gnu.ini -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true
- - ninja -C build
-
-arm64_rel:
- <<: *build_definition
- image: lv2plugin/debian-arm64
+default:
+ stage: build
+ image: lv2plugin/debian-x64
script:
- - meson setup build --cross-file=/usr/share/meson/cross/aarch64-linux-gnu.ini -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true
+ - meson setup build -Dwerror=true
- ninja -C build
-
-x64_dbg:
- <<: *build_definition
+dev:
+ stage: build
image: lv2plugin/debian-x64
script:
- meson setup build -Dbuildtype=debug -Ddocs=enabled -Dstrict=true -Dwerror=true
- ninja -C build
+ - meson configure -Dbuildtype=release build
+ - ninja -C build
artifacts:
paths:
- build/doc
-x64_rel:
- <<: *build_definition
- image: lv2plugin/debian-x64
- script:
- - meson setup build -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true
- - ninja -C build
-
-
-x64_static:
- <<: *build_definition
+static:
+ stage: build
image: lv2plugin/debian-x64
script:
- meson setup build -Ddefault_library=static -Ddocs=disabled -Dstrict=true -Dwerror=true
- ninja -C build
+ - meson configure -Dbuildtype=release build
+ - ninja -C build
-
-x64_sanitize:
- <<: *build_definition
+sanitize:
+ stage: build
image: lv2plugin/debian-x64-clang
script:
- meson setup build -Db_lundef=false -Dbuildtype=plain -Ddocs=disabled -Dstrict=true -Dwerror=true
@@ -74,71 +44,80 @@ x64_sanitize:
CXXFLAGS: "-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 Platforms
-fedora:
- <<: *build_definition
- image: lv2plugin/fedora-big
+arm32:
+ stage: build
+ image: lv2plugin/debian-arm32
script:
- - meson setup build -Dbuildtype=plain -Dstrict=true -Dwerror=true
+ - meson setup build --cross-file=/usr/share/meson/cross/arm-linux-gnueabihf.ini -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true
+ - ninja -C build
+ - meson configure -Dbuildtype=release build
- ninja -C build
- variables:
- CFLAGS: -O2 -D_FORTIFY_SOURCE=2
-
-mingw32_dbg:
- <<: *build_definition
- image: lv2plugin/debian-mingw32
+arm64:
+ stage: build
+ image: lv2plugin/debian-arm64
script:
- - meson setup build --cross-file=/usr/share/meson/cross/i686-w64-mingw32.ini -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true
+ - meson setup build --cross-file=/usr/share/meson/cross/aarch64-linux-gnu.ini -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true
+ - ninja -C build
+ - meson configure -Dbuildtype=release build
- ninja -C build
-mingw32_rel:
- <<: *build_definition
+mingw32:
+ stage: build
image: lv2plugin/debian-mingw32
script:
- - meson setup build --cross-file=/usr/share/meson/cross/i686-w64-mingw32.ini -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true
+ - meson setup build --cross-file=/usr/share/meson/cross/i686-w64-mingw32.ini -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true
+ - ninja -C build
+ - meson configure -Dbuildtype=release build
- ninja -C build
-
-mingw64_dbg:
- <<: *build_definition
+mingw64:
+ stage: build
image: lv2plugin/debian-mingw64
script:
- meson setup build --cross-file=/usr/share/meson/cross/x86_64-w64-mingw32.ini -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true
- ninja -C build
+ - meson configure -Dbuildtype=release build
+ - ninja -C build
-mingw64_rel:
- <<: *build_definition
- image: lv2plugin/debian-mingw64
+# Linux Distributions
+
+fedora:
+ stage: build
+ image: lv2plugin/fedora-big
script:
- - meson setup build --cross-file=/usr/share/meson/cross/x86_64-w64-mingw32.ini -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true
+ - meson setup build -Dbuildtype=plain -Dstrict=true -Dwerror=true
- ninja -C build
+ variables:
+ CFLAGS: -O2 -D_FORTIFY_SOURCE=2
+# Non-Linux/Docker rows (not hosted)
mac_dbg:
- <<: *build_definition
+ stage: build
tags: [macos]
script:
- meson setup build -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true
- ninja -C build
mac_rel:
- <<: *build_definition
+ stage: build
tags: [macos]
script:
- meson setup build -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true
- ninja -C build
-
win_dbg:
- <<: *build_definition
+ stage: build
tags: [windows,meson]
script:
- meson setup build -Dbuildtype=debug -Ddocs=disabled -Dstrict=true -Dwerror=true
- ninja -C build
win_rel:
- <<: *build_definition
+ stage: build
tags: [windows,meson]
script:
- meson setup build -Dbuildtype=release -Ddocs=disabled -Dstrict=true -Dwerror=true
@@ -155,7 +134,7 @@ pages:
- mv build/doc/c/html/ public/c/html/
- mv build/doc/cpp/html/ public/cpp/html/
dependencies:
- - x64_dbg
+ - dev
artifacts:
paths:
- public