stages:
  - build
  - stats

# with :; prevent from run it on windows
before_script:
  - ":; uname -a"
  - ":; cat /etc/os-release"
  - ":; pwd"
  - ":; cat /proc/sys/kernel/core_pattern"
  - ":; mkdir logs || true"
  - ":; ${UPDATEREPOS}"
  - ":; ${DOCKERRETRY} ${PMUPDATE} >logs/apt.log"
  - ":; ${DOCKERRETRY} ${PMINSTALL} ${PACKAGES} >>logs/apt.log"

.job-push: &job-push
  artifacts:
    paths:
    - logs
    - manaplus/logs
    when: always
    expire_in: 3 week
  dependencies: []

.job-always: &job-always
  artifacts:
    paths:
    - logs
    - manaplus/logs
    when: always
    expire_in: 3 week
  dependencies: []

gcc-6_tests_gcov:
  stage: build
  script:
  - ./tools/ci/scripts/clonesrc.sh
  - cd manaplus
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/gcc6_tests_gcov.sh --without-dyecmd --without-manaplusgame
  <<: *job-push
  variables:
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev 
              gcovr
              git-core valgrind
  image: debian:stretch
  tags:
    - docker

gcc-6_sdl2_tests_gcov:
  stage: build
  script:
  - ./tools/ci/scripts/clonesrc.sh
  - cd manaplus
  - ./tools/ci/jobs/gcc6_sdl2_tests_gcov.sh --without-dyecmd --without-manaplusgame
  <<: *job-push
  variables:
    PACKAGES: gcc-6 g++-6 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-dev libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev 
              gcovr
              git-core valgrind
  image: debian:stretch
  tags:
    - docker

doxygen:
  stage: build
  script:
  - ./tools/ci/scripts/clonesrc.sh
  - cd manaplus
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/doxygen.sh
  artifacts:
    paths:
    - manaplus/doxygen
    expire_in: 3 week
    when: always
  dependencies: []
  variables:
    PACKAGES: doxygen graphviz 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev
              git-core
  tags:
    - docker

gitstats:
  stage: build
  script:
  - ./tools/ci/scripts/clonesrc.sh
  - cd manaplus
  - ./tools/ci/jobs/gitstats.sh
  artifacts:
    paths:
    - manaplus/stats
    expire_in: 3 week
    when: always
  dependencies: []
  variables:
    GIT_DEPTH: "100000"
    PACKAGES: git-core python zlib1g git-core gnuplot
  tags:
    - docker

gitstatsh:
  stage: build
  script:
  - ./tools/ci/scripts/clonesrc.sh
  - cd manaplus
  - ./tools/ci/jobs/gitstatsh.sh
  artifacts:
    paths:
    - manaplus/stats2
    expire_in: 3 week
    when: always
  dependencies: []
  variables:
    GIT_DEPTH: "100000"
    PACKAGES: git-core python python-pip zlib1g
  tags:
    - docker

# stats

pages:
  stage: stats
  script:
  - rm -rf artifacts || true
  - mv manaplus artifacts
  - ./tools/ci/scripts/clonesrc.sh
  - mv artifacts/* manaplus/
  - cd manaplus
  - ./tools/ci/jobs/pages.sh
  dependencies:
    - doxygen
    - gitstats
    - gitstatsh
    - gcc-6_tests_gcov
    - gcc-6_sdl2_tests_gcov
  variables:
    PACKAGES: git-core python
  artifacts:
    paths:
    - public
    expire_in: 3 week
  tags:
    - docker
