include:
  - template: 'Workflows/Branch-Pipelines.gitlab-ci.yml'

default:
  tags:
    - docker
  # Image from https://hub.docker.com/_/gcc/ based on Debian
  image: gcc:9

whitespace:
  stage: test
  script:
    - git diff-tree --check origin/master HEAD

autoconf:
  stage: build
  before_script:
    - apt-get update &&
      apt-get install -y zip doxygen
  script:
    - ./autogen.sh
    - ./configure
    - make -j4
    - make distcheck
  cache:
    paths:
      - "src/*.o"
      - "src/.libs/*.o"
      - "silk/*.o"
      - "silk/.libs/*.o"
      - "celt/*.o"
      - "celt/.libs/*.o"

cmake:
  stage: build
  before_script:
    - apt-get update &&
      apt-get install -y cmake ninja-build
  script:
    - mkdir build
    - cmake -S . -B build -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DOPUS_BUILD_TESTING=ON -DOPUS_BUILD_PROGRAMS=ON
    - cmake --build build
    - cd build && ctest --output-on-failure

meson:
  stage: build
  before_script:
    - apt-get update &&
      apt-get install -y python3-pip ninja-build doxygen
    - export XDG_CACHE_HOME=$PWD/pip-cache
    - pip3 install --user meson
  script:
    - export PATH=$PATH:$HOME/.local/bin
    - mkdir builddir
    - meson setup --werror -Dtests=enabled -Ddocs=enabled -Dbuildtype=release builddir
    - meson compile -C builddir
    - meson test -C builddir
    #- meson dist --no-tests -C builddir
  cache:
    paths:
      - 'pip-cache/*'
