diff options
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r-- | .gitlab-ci.yml | 185 |
1 files changed, 72 insertions, 113 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cfbed9c..975664e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,158 +1,117 @@ -stages: [build, test, deploy] - -variables: - GIT_SUBMODULE_STRATEGY: normal - -.build_template: &build_definition - stage: build - artifacts: - paths: ["build/", ".lock-waf*"] - -.test_template: &test_definition - stage: test - artifacts: - paths: [build/coverage] - +# Copyright 2019-2022 David Robillard <d@drobilla.net> +# SPDX-License-Identifier: CC0-1.0 OR GPL-3.0-or-later arm32_dbg: - <<: *build_definition - image: lv2plugin/debian-arm32 - script: python ./waf configure build -dST --werror - variables: - CC: "arm-linux-gnueabihf-gcc" - CXX: "arm-linux-gnueabihf-g++" - -test:arm32_dbg: - <<: *test_definition image: lv2plugin/debian-arm32 - script: python ./waf test -v -v --wrapper=qemu-arm - needs: ["arm32_dbg"] - + script: + - meson setup build --cross-file=/usr/share/meson/cross/arm-linux-gnueabihf.ini -Dbuildtype=debug -Dstrict=true -Dwerror=true + - ninja -C build test arm32_rel: - <<: *build_definition - image: lv2plugin/debian-arm32 - script: python ./waf configure build -ST --werror - variables: - CC: "arm-linux-gnueabihf-gcc" - CXX: "arm-linux-gnueabihf-g++" - -test:arm32_rel: - <<: *test_definition image: lv2plugin/debian-arm32 - script: python ./waf test -v -v --wrapper=qemu-arm - needs: ["arm32_rel"] + script: + - meson setup build --cross-file=/usr/share/meson/cross/arm-linux-gnueabihf.ini -Dbuildtype=release -Dstrict=true -Dwerror=true + - ninja -C build test arm64_dbg: - <<: *build_definition image: lv2plugin/debian-arm64 - script: python ./waf configure build -dST --werror - variables: - CC: "aarch64-linux-gnu-gcc" - CXX: "aarch64-linux-gnu-g++" + script: + - meson setup build --cross-file=/usr/share/meson/cross/aarch64-linux-gnu.ini -Dbuildtype=debug -Dstrict=true -Dwerror=true + - ninja -C build test -test:arm64_dbg: - <<: *test_definition +arm64_rel: image: lv2plugin/debian-arm64 - script: python ./waf test -v -v --wrapper=qemu-aarch64 - needs: ["arm64_dbg"] + script: + - meson setup build --cross-file=/usr/share/meson/cross/aarch64-linux-gnu.ini -Dbuildtype=release -Dstrict=true -Dwerror=true + - ninja -C build test -arm64_rel: - <<: *build_definition - image: lv2plugin/debian-arm64 - script: python ./waf configure build -ST --werror - variables: - CC: "aarch64-linux-gnu-gcc" - CXX: "aarch64-linux-gnu-g++" +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 + - ninja -C build test -test:arm64_rel: - <<: *test_definition - image: lv2plugin/debian-arm64 - script: python ./waf test -v -v --wrapper=qemu-aarch64 - needs: ["arm64_rel"] +x32_rel: + image: lv2plugin/debian-x32 + script: + - meson setup build --cross-file=/usr/share/meson/cross/i686-linux-gnu.ini -Dbuildtype=release -Dstrict=true -Dwerror=true + - ninja -C build test x64_dbg: - <<: *build_definition image: lv2plugin/debian-x64 - script: python ./waf configure build -dST --werror + script: + - meson setup build -Dbuildtype=debug -Dstrict=true -Dwerror=true -Db_coverage=true + - ninja -C build test + - ninja -C build coverage-html + coverage: '/ *lines\.*: \d+\.\d+.*/' + artifacts: + paths: + - build/meson-logs/coveragereport -test:x64_dbg: - <<: *test_definition +x64_rel: image: lv2plugin/debian-x64 - script: python ./waf test -v -v - needs: ["x64_dbg"] + script: + - meson setup build -Dbuildtype=release -Dstrict=true -Dwerror=true + - ninja -C build test -x64_rel: - <<: *build_definition +x64_static: image: lv2plugin/debian-x64 - script: python ./waf configure build -ST --werror + script: + - meson setup build -Ddefault_library=static -Dstrict=true -Dwerror=true + - ninja -C build test -test:x64_rel: - <<: *test_definition - image: lv2plugin/debian-x64 - script: python ./waf test -v -v - needs: ["x64_rel"] +x64_sanitize: + image: lv2plugin/debian-x64-clang + script: + - meson setup build -Db_lundef=false -Dbuildtype=plain -Dstrict=true -Dwerror=true + - 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" -mac_dbg: - <<: *build_definition - script: python ./waf configure build -dST --werror --no-coverage - tags: [macos] -test:mac_dbg: - <<: *test_definition - script: python ./waf test -v -v - needs: ["mac_dbg"] +mac_dbg: tags: [macos] - + script: + - meson setup build -Dbuildtype=debug -Dstrict=true -Dwerror=true + - ninja -C build test mac_rel: - <<: *build_definition - script: python ./waf configure build -ST --werror --no-coverage - tags: [macos] - -test:mac_rel: - <<: *test_definition - script: python ./waf test -v -v - needs: ["mac_rel"] tags: [macos] + script: + - meson setup build -Dbuildtype=release -Dstrict=true -Dwerror=true + - ninja -C build test win_dbg: - <<: *build_definition - script: python ./waf configure build -ST --werror --no-coverage - tags: [windows,msvc,python] - -test:win_dbg: - <<: *test_definition - script: python ./waf test -v -v - needs: ["win_dbg"] - tags: [windows,msvc,python] - + tags: [windows,meson] + script: + - meson setup build -Dbuildtype=debug -Dstrict=true -Dwerror=true + - ninja -C build test win_rel: - <<: *build_definition - script: python ./waf configure build -ST --werror --no-coverage - tags: [windows,msvc,python] - -test:win_rel: - <<: *test_definition - script: python ./waf test -v -v - needs: ["win_rel"] - tags: [windows,msvc,python] + tags: [windows,meson] + script: + - meson setup build -Dbuildtype=release -Dstrict=true -Dwerror=true + - ninja -C build test pages: stage: deploy - script: mv build/coverage/ public/ - dependencies: - - test:x64_dbg + script: + - mkdir -p .public + - mv build/meson-logs/coveragereport/ .public/coverage + - mv .public public + needs: + - x64_dbg artifacts: paths: - public only: - - master + - main |