stages: [build, 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]


arm32_dbg:
  <<: *build_definition
  image: lv2plugin/debian-arm32
  script: python3 ./waf configure build test -dST --werror --wrapper=qemu-arm-static
  variables:
    CC: "arm-linux-gnueabihf-gcc"
    CXX: "arm-linux-gnueabihf-g++"

arm32_rel:
  <<: *build_definition
  image: lv2plugin/debian-arm32
  script: python3 ./waf configure build test -ST --werror --wrapper=qemu-arm-static
  variables:
    CC: "arm-linux-gnueabihf-gcc"
    CXX: "arm-linux-gnueabihf-g++"


arm64_dbg:
  <<: *build_definition
  image: lv2plugin/debian-arm64
  script: python3 ./waf configure build test -dST --werror --wrapper=qemu-aarch64-static
  variables:
    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 --wrapper=qemu-aarch64-static
  variables:
    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

x64_rel:
  <<: *build_definition
  image: lv2plugin/debian-x64
  script: python3 ./waf configure build test -ST --werror


mac_dbg:
  <<: *build_definition
  script: python3 ./waf configure build test -dST --werror --no-coverage
  tags: [macos]

mac_rel:
  <<: *build_definition
  script: python3 ./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: mv build/coverage/ public/
  dependencies: ["x64_dbg"]
  artifacts:
    paths: [public]
  only:
    - master