diff options
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r-- | .gitlab-ci.yml | 206 |
1 files changed, 71 insertions, 135 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 09e5596..7d936dc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,214 +1,150 @@ stages: - build - - test - -variables: - GIT_SUBMODULE_STRATEGY: normal + - deploy .build_template: &build_definition stage: build - artifacts: - paths: - - build/ - - .lock-waf* - -.test_template: &test_definition - stage: test - artifacts: - paths: - - build/coverage 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 --wrapper=qemu-arm - needs: ["arm32_dbg"] - + script: + - meson . 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 --wrapper=qemu-arm - needs: ["arm32_rel"] + script: + - meson . 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++" - -test:arm64_dbg: - <<: *test_definition - image: lv2plugin/debian-arm64 - script: python ./waf test --wrapper=qemu-aarch64 - needs: ["arm64_dbg"] - + script: + - meson . build --cross-file=/usr/share/meson/cross/aarch64-linux-gnu.ini -Dbuildtype=debug -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++" - -test:arm64_rel: - <<: *test_definition - image: lv2plugin/debian-arm64 - script: python ./waf test --wrapper=qemu-aarch64 - needs: ["arm64_rel"] + script: + - meson . build --cross-file=/usr/share/meson/cross/aarch64-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 --docs - -test:x64_dbg: - <<: *test_definition - image: lv2plugin/debian-x64 - script: python ./waf test - needs: ["x64_dbg"] - + script: + - meson . build -Dbuildtype=debug -Dstrict=true -Dwerror=true -Db_coverage=true + - ninja -C build test + - ninja -C build coverage-html + artifacts: + paths: + - build/meson-logs/coveragereport x64_rel: <<: *build_definition image: lv2plugin/debian-x64 - script: python ./waf configure build -ST --werror - -test:x64_rel: - <<: *test_definition - image: lv2plugin/debian-x64 - script: python ./waf test - needs: ["x64_rel"] + script: + - meson . build -Dbuildtype=release -Dstrict=true -Dwerror=true + - ninja -C build test x64_static: <<: *build_definition image: lv2plugin/debian-x64 - script: python ./waf configure build -ST --werror + script: + - meson . build -Ddefault_library=static -Dstrict=true -Dwerror=true + - ninja -C build test -test:x64_static: - <<: *test_definition - image: lv2plugin/debian-x64 - script: python ./waf test - needs: ["x64_static"] x64_sanitize: <<: *build_definition image: lv2plugin/debian-x64-clang - script: python ./waf configure build -ST --werror --no-coverage --no-test-malloc + script: + - meson . build -Db_lundef=false -Dbuildtype=plain -Dtest_malloc=false -Dstrict=true -Dwerror=true + - ninja -C build test variables: CC: "clang" - CFLAGS: "-fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=unsigned-integer-overflow -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability" - CXX: "clang++" - CXXFLAGS: "-fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=unsigned-integer-overflow -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability" - LINKFLAGS: "-fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=unsigned-integer-overflow -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability" - -test:x64_sanitize: - <<: *test_definition - image: lv2plugin/debian-x64-clang - script: python ./waf test - needs: ["x64_sanitize"] + CFLAGS: "-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" mingw32_dbg: <<: *build_definition image: lv2plugin/debian-mingw32 - script: python ./waf configure build -dST --werror --no-coverage - variables: - CC: "i686-w64-mingw32-gcc" - CXX: "i686-w64-mingw32-g++" + script: + - meson . build --cross-file=/usr/share/meson/cross/i686-w64-mingw32.ini -Dbuildtype=debug -Dstrict=true -Dwerror=true + - ninja -C build test mingw32_rel: <<: *build_definition image: lv2plugin/debian-mingw32 - script: python ./waf configure build -ST --werror --no-coverage - variables: - CC: "i686-w64-mingw32-gcc" - CXX: "i686-w64-mingw32-g++" + script: + - meson . build --cross-file=/usr/share/meson/cross/i686-w64-mingw32.ini -Dbuildtype=release -Dstrict=true -Dwerror=true + - ninja -C build test mingw64_dbg: <<: *build_definition image: lv2plugin/debian-mingw64 - script: python ./waf configure build -dST --werror --no-coverage - variables: - CC: "x86_64-w64-mingw32-gcc" - CXX: "x86_64-w64-mingw32-g++" + script: + - meson . build --cross-file=/usr/share/meson/cross/x86_64-w64-mingw32.ini -Dbuildtype=debug -Dstrict=true -Dwerror=true + - ninja -C build test mingw64_rel: <<: *build_definition image: lv2plugin/debian-mingw64 - script: python ./waf configure build -ST --werror --no-coverage - variables: - CC: "x86_64-w64-mingw32-gcc" - CXX: "x86_64-w64-mingw32-g++" + script: + - meson . build --cross-file=/usr/share/meson/cross/x86_64-w64-mingw32.ini -Dbuildtype=release -Dstrict=true -Dwerror=true + - ninja -C build test mac_dbg: <<: *build_definition - script: python ./waf configure build -dST --werror --no-coverage - tags: [macos] - -test:mac_dbg: - <<: *test_definition - script: python ./waf test - needs: ["mac_dbg"] tags: [macos] - + script: + - meson . 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 - needs: ["mac_rel"] tags: [macos] + script: + - meson . build -Dbuildtype=release -Dstrict=true -Dwerror=true + - ninja -C build test win_dbg: <<: *build_definition - script: python ./waf configure build -dST --werror --no-coverage - tags: [windows,msvc,python] - -test:win_dbg: - <<: *test_definition - script: python ./waf test - needs: ["win_dbg"] - tags: [windows,msvc,python] - + tags: [windows,meson] + script: + - meson . build -Dbuildtype=debug -Dstrict=true -Dwerror=true -Dtest_malloc=false + - ninja -C build test win_rel: <<: *build_definition - script: python ./waf configure build -ST --werror --no-coverage - tags: [windows,msvc,python] + tags: [windows,meson] + script: + - meson . build -Dbuildtype=release -Dstrict=true -Dwerror=true -Dtest_malloc=false + - ninja -C build test + -test:win_rel: - <<: *test_definition - script: python ./waf test - needs: ["win_rel"] - tags: [windows,msvc,python] +pages: + stage: deploy + script: + - mkdir -p .public + - mv build/meson-logs/coveragereport/ .public/coverage + - mv .public public + dependencies: + - x64_dbg + artifacts: + paths: + - public + only: + - master |