diff options
author | David Robillard <d@drobilla.net> | 2022-11-24 13:07:40 -0500 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2022-11-24 13:07:40 -0500 |
commit | 0b269c4de694f4e0add7606489f8ee2b3e7f5f13 (patch) | |
tree | dccdd9e74cea78ed882f392fce85aa47fce7c903 | |
parent | 88d6a4572aa136704881e4fdeeecf8bba03e49ea (diff) | |
download | pugl-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.
-rw-r--r-- | .gitlab-ci.yml | 127 |
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 |