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


arm32_dbg:
  <<: *build_definition
  image: lv2plugin/debian-arm32
  script: python ./waf configure build -dST
  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
  dependencies:
    - arm32_dbg


arm32_rel:
  <<: *build_definition
  image: lv2plugin/debian-arm32
  script: python ./waf configure build -ST
  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
  dependencies:
    - arm32_rel


arm64_dbg:
  <<: *build_definition
  image: lv2plugin/debian-arm64
  script: python ./waf configure build -dST
  variables:
    CC: "aarch64-linux-gnu-gcc"
    CXX: "aarch64-linux-gnu-g++"

test:arm64_dbg:
  <<: *test_definition
  image: lv2plugin/debian-arm64
  script: python ./waf test -v -v --wrapper=qemu-aarch64
  dependencies:
    - arm64_dbg


arm64_rel:
  <<: *build_definition
  image: lv2plugin/debian-arm64
  script: python ./waf configure build -ST
  variables:
    CC: "aarch64-linux-gnu-gcc"
    CXX: "aarch64-linux-gnu-g++"

test:arm64_rel:
  <<: *test_definition
  image: lv2plugin/debian-arm64
  script: python ./waf test -v -v --wrapper=qemu-aarch64
  dependencies:
    - arm64_rel


x64_dbg:
  <<: *build_definition
  image: lv2plugin/debian-x64
  script: python ./waf configure build -dST

test:x64_dbg:
  <<: *test_definition
  image: lv2plugin/debian-x64
  script: python ./waf test -v -v
  dependencies:
    - x64_dbg


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

test:x64_rel:
  <<: *test_definition
  image: lv2plugin/debian-x64
  script: python ./waf test -v -v
  dependencies:
    - x64_rel


mac_dbg:
  <<: *build_definition
  script: python ./waf configure build -dST --no-coverage
  tags:
    - macos

test:mac_dbg:
  <<: *test_definition
  script: python ./waf test -v -v
  dependencies:
    - mac_dbg
  tags:
    - macos


mac_rel:
  <<: *build_definition
  script: python ./waf configure build -ST --no-coverage
  tags:
    - macos

test:mac_rel:
  <<: *test_definition
  script: python ./waf test -v -v
  dependencies:
    - mac_rel
  tags:
    - macos


win_dbg:
  <<: *build_definition
  script:
    - python ./waf configure build -ST --no-coverage
  tags:
    - windows

test:win_dbg:
  <<: *test_definition
  script: python ./waf test -v -v
  dependencies:
    - win_dbg
  tags:
    - windows


win_rel:
  <<: *build_definition
  script: python ./waf configure build -ST --no-coverage
  tags:
    - windows

test:win_rel:
  <<: *test_definition
  script: python ./waf test -v -v
  dependencies:
    - win_rel
  tags:
    - windows


pages:
  stage: deploy
  script: mv build/coverage/ public/
  dependencies:
    - test:x64_dbg
  artifacts:
    expire_in: 30 days
    paths:
      - public
  only:
    - master