stages: [build, deploy] variables: GIT_SUBMODULE_STRATEGY: normal .build_template: &build_definition stage: build artifacts: paths: ["build/", ".lock-waf*"] arm32_dbg: <<: *build_definition image: lv2plugin/debian-arm32 script: - python3 ./waf configure build test -dST --no-coverage --werror --wrapper=qemu-arm-static variables: AR: "arm-linux-gnueabihf-ar" CC: "arm-linux-gnueabihf-gcc" CFLAGS: "-O0 -g -D_FILE_OFFSET_BITS=64" CXX: "arm-linux-gnueabihf-g++" CXXFLAGS: "-O0 -g -D_FILE_OFFSET_BITS=64" arm32_rel: <<: *build_definition image: lv2plugin/debian-arm32 script: - python3 ./waf configure build -ST --werror --no-coverage --wrapper=qemu-arm-static variables: AR: "arm-linux-gnueabihf-ar" CC: "arm-linux-gnueabihf-gcc" CFLAGS: "-O2 -DNDEBUG -D_FILE_OFFSET_BITS=64" CXX: "arm-linux-gnueabihf-g++" CXXFLAGS: "-O2 -DNDEBUG -D_FILE_OFFSET_BITS=64" arm64_dbg: <<: *build_definition image: lv2plugin/debian-arm64 script: - python3 ./waf configure build test -dST --werror --no-coverage --wrapper=qemu-aarch64-static variables: AR: "aarch64-linux-gnu-ar" CC: "aarch64-linux-gnu-gcc" CXX: "aarch64-linux-gnu-g++" arm64_rel: <<: *build_definition image: lv2plugin/debian-arm64 script: - python3 ./waf configure build test -ST --werror --no-coverage --wrapper=qemu-aarch64-static variables: AR: "aarch64-linux-gnu-ar" CC: "aarch64-linux-gnu-gcc" CXX: "aarch64-linux-gnu-g++" x64_dbg: <<: *build_definition image: lv2plugin/debian-x64 script: - python3 ./waf configure build test -dST --werror --docs - mkdir -p build/doc/ - cp doc/*.svg build/doc/ - cp doc/mandoc.css build/doc/ - mandoc -Thtml -Werror -O style=mandoc.css doc/serdi.1 > build/doc/serdi.html artifacts: paths: - build/doc - build/coverage x64_rel: <<: *build_definition image: lv2plugin/debian-x64 script: - python3 ./waf configure build test -ST --werror x64_static: <<: *build_definition image: lv2plugin/debian-x64 script: - python3 ./waf configure build test -ST --werror --no-posix --static-progs x64_sanitize: <<: *build_definition image: lv2plugin/debian-x64-clang script: - python3 ./waf configure build test -ST --werror --no-coverage 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" CXX: "clang++" 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" LINKFLAGS: "-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" mingw32_dbg: <<: *build_definition image: lv2plugin/debian-mingw32 script: - python3 ./waf configure build -dST --werror --no-coverage --wrapper=wine variables: AR: "i686-w64-mingw32-ar" CC: "i686-w64-mingw32-gcc" CXX: "i686-w64-mingw32-g++" mingw32_rel: <<: *build_definition image: lv2plugin/debian-mingw32 script: - python3 ./waf configure build -ST --werror --no-coverage --wrapper=wine variables: AR: "i686-w64-mingw32-ar" CC: "i686-w64-mingw32-gcc" CXX: "i686-w64-mingw32-g++" mingw64_dbg: <<: *build_definition image: lv2plugin/debian-mingw64 script: - python3 ./waf configure build -dST --werror --no-coverage --wrapper=wine variables: AR: "x86_64-w64-mingw32-ar" CC: "x86_64-w64-mingw32-gcc" CXX: "x86_64-w64-mingw32-g++" mingw64_rel: <<: *build_definition image: lv2plugin/debian-mingw64 script: - python3 ./waf configure build -ST --werror --no-coverage --wrapper=wine variables: AR: "x86_64-w64-mingw32-ar" CC: "x86_64-w64-mingw32-gcc" CXX: "x86_64-w64-mingw32-g++" mac_dbg: <<: *build_definition script: - python ./waf configure build test -dST --werror --no-coverage tags: [macos] mac_rel: <<: *build_definition script: - python ./waf configure build test -ST --werror --no-coverage tags: [macos] win_dbg: <<: *build_definition script: - python ./waf configure build test -dST --werror --no-coverage tags: [windows,msvc,python] win_rel: <<: *build_definition script: - python ./waf configure build test -ST --werror --no-coverage tags: [windows,msvc,python] pages: stage: deploy script: - mkdir -p .public/doc - mkdir -p .public/man - mkdir -p .public/c - mv build/doc/c/singlehtml .public/c/singlehtml - mv build/doc/c/html .public/c/html - mv build/doc/serdi.html .public/man/serdi.html - mv build/doc/mandoc.css .public/man/mandoc.css - mv .public public artifacts: paths: - public only: - master