stages:
  - build
  - tests

# 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"
  - ":; ./tools/ci/scripts/clonesrc.sh"
  - ":; cd manaplus"

image: debian:unstable
variables:
  GET_SOURCES_ATTEMPTS: "5"
  ARTIFACT_DOWNLOAD_ATTEMPTS: "5"
  UPDATEREPOS: "tools/ci/scripts/updaterepos.sh"
  PMUPDATE: "apt-get update"
  PMINSTALL: "apt-get install -y -qq"
  DOCKERRETRY: "./tools/ci/scripts/dockerretry.sh"
  GIT_DEPTH: "1"

.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: []

mxe_gcc6_shared_32_testsbin:
  stage: build
  script:
  - ls /mxe
  - ./tools/ci/jobs/mxe_gcc6_tests.sh --without-manaplusgame --without-dyecmd
  artifacts:
    paths:
    - logs
    untracked: true
    when: always
    expire_in: 1 week
  dependencies: []
  image: registry.gitlab.com/manaplus/mxe:gcc6_shared_32
  variables:
    PACKAGES: bash
    CROSS: i686-w64-mingw32.shared
  tags:
    - docker

mxe_gcc6_shared_64_testsbin:
  stage: build
  script:
  - ls /mxe
  - ./tools/ci/jobs/mxe_gcc6_tests.sh --without-manaplusgame --without-dyecmd
  artifacts:
    paths:
    - logs
    untracked: true
    when: always
    expire_in: 1 week
  dependencies: []
  image: registry.gitlab.com/manaplus/mxe:gcc6_shared_64
  variables:
    PACKAGES: bash
    CROSS: x86_64-w64-mingw32.shared
  tags:
    - docker

.mxe_gcc6_shared_32_tests:
  stage: tests
  script:
  - tools\ci\jobs\windowstest.cmd files32
  - dir
  artifacts:
    paths:
    - logs
    when: always
    expire_in: 3 week
  dependencies:
    - mxe_gcc6_shared_32_testsbin
  when: manual
  tags:
    - windows

.mxe_gcc6_shared_64_tests:
  stage: tests
  script:
  - tools\ci\jobs\windowstest.cmd files64
  artifacts:
    paths:
    - logs
    when: always
    expire_in: 3 week
  dependencies:
    - mxe_gcc6_shared_64_testsbin
  when: manual
  tags:
    - windows
