### Global defaults

env:  
  CCACHE_SIZE: "200M"
  CCACHE_DIR: "/tmp/ccache_dir"
  CCACHE_NOHASHDIR: "1"  # Debug info might contain a stale path if the build dir changes, but this is fine
  CCACHE_CPP2: "yes"
  QT_SELECT: "qt5"

### Task templates

# https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks
filter_template: &FILTER_TEMPLATE
  skip: "!changesInclude('.cirrus.yml', '**.{h,cpp,c,pro,pri,ts,ui,png}')"

regular_task_template: &REGULER_TASK_TEMPLATE
  << : *FILTER_TEMPLATE
  ccache_cache:
    folder: "/tmp/ccache_dir"

linux_task_template: &LINUX_TASK_TEMPLATE
  << : *REGULER_TASK_TEMPLATE
  env:
    DEBIAN_FRONTEND: "noninteractive"
    PACKAGE_MANAGER_INSTALL: "apt-get -qq update && apt-get install -y"
  container:
    cpu: 4
  install_script:
    - bash -c "$PACKAGE_MANAGER_INSTALL qtbase5-dev libqt5svg5-dev qttools5-dev-tools libqt5xmlpatterns5-dev libqt5core5a libqt5gui5 libqt5printsupport5 libqt5svg5 libqt5widgets5 libqt5xml5 libqt5xmlpatterns5 poppler-utils xvfb ccache"
  build_script:
    - uname -a
    - echo $PATH
    - which qmake
    - mkdir build
    - cd build
    - pwd
    - qmake --version
    - qmake ../Valentina.pro -r -spec linux-${COMPILER} CONFIG+=noDebugSymbols CONFIG+=checkWarnings
    - ${COMPILER} --version
    - make -j$(nproc)
    - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"$CIRRUS_WORKING_DIR/build/src/libs/vpropertyexplorer/bin:$CIRRUS_WORKING_DIR/build/src/libs/qmuparser/bin"
    - xvfb-run -a make --silent check TESTARGS="-silent"

macos_task_template: &MACOS_TASK_TEMPLATE
  << : *REGULER_TASK_TEMPLATE
  timeout_in: 120m
  env:
    ACCESS_TOKEN: ENCRYPTED[81e0b2381ffb628b73f5c94f834010e6631191e0ad03cdd0850d440fb2737a74b68131d842030f010c1bf73ab4cdc1ae]
    QTDIR: "/usr/local/opt/qt5"
    PATH: ${HOME}/.local/bin:$QTDIR/bin:${PATH}
    # ^  add user paths
    PIP_CACHE_DIR: ${HOME}/.cache/pip
    DEPLOY: "true"
    LDFLAGS: "-L$QTDIR/lib"
    CPPFLAGS: "-I$QTDIR/include"
    PKG_CONFIG_PATH: "/usr/local/opt/qt5/lib/pkgconfig"
  global_homebrew_cache:
    folder: "/usr/local/Homebrew"
  local_homebrew_cache:
    folder: "$HOME/Library/Caches/Homebrew"
  pip_cache:
    folder: ${PIP_CACHE_DIR}
  install_script:
    - brew update > /dev/null
    - brew install qt5 coreutils ccache
    - chmod -R 755 /usr/local/opt/qt5/*
    - python3 --version
    - pip3 install --user --upgrade pip dropbox
  build_script:
    - mkdir build
    - cd build
    - pwd
    - qmake --version
    - qmake ../Valentina.pro -r CONFIG+=noDebugSymbols CONFIG+=checkWarnings CONFIG+=noTests
    - ${COMPILER} --version
    - make -j$(nproc)
  deploy_script:
    - pwd
    - $CIRRUS_WORKING_DIR/scripts/cirrus-deploy.sh
  before_cache_script:
    - brew cleanup
  env:
    COMPILER: clang

task:
  name: 'macOS Catalina 10.15 [no tests]'
  macos_instance:
    image: catalina-xcode-11.3.1
  << : *MACOS_TASK_TEMPLATE
  env:
    PLATFORM: "macOS_10.14+"

task:
  name: 'macOS Big Sur 11 [no tests]'
  macos_instance:
    image: big-sur-xcode-12.4
  << : *MACOS_TASK_TEMPLATE
  env:
    PLATFORM: "macOS_10.15+"

task:
  name: 'latest GCC'
  container:
    image: teeks99/gcc-ubuntu:latest
    memory: 16G   # Set to 16GB to avoid OOM. https://cirrus-ci.org/guide/linux/#linux-container
  << : *LINUX_TASK_TEMPLATE
  env:
    COMPILER: g++
    GCC_COLORS: 'error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

task:
  name: 'latest Clang'
  container:
    image: silkeh/clang:latest
    memory: 8G  # Set to 8GB to avoid OOM. https://cirrus-ci.org/guide/linux/#linux-container
  << : *LINUX_TASK_TEMPLATE
  env:
    COMPILER: clang