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

# crash in config tests
.gcc-7_sanitize_i386:
  stage: build
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/gcc7_sanitize.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              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
              git gdb valgrind netcat-openbsd procps
    JOBS: 1
  tags:
    - docker

gcc-7_sanitize:
  stage: build
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/gcc7_sanitize.sh
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              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
              git gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-7_lto:
  stage: build
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/gcc7_lto.sh
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              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
              git gdb valgrind netcat-openbsd procps
    POST_CXXFLAGS: "-Wno-null-dereference"

gcc-7_lto_i386:
  stage: build
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/gcc7_lto.sh
  - ./tools/ci/scripts/runtests.sh
  image: vicamo/debian:sid-i386
  <<: *job-push
  variables:
    PACKAGES: gcc-7 g++-7 
              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
              git gdb valgrind netcat-openbsd procps
    POST_CXXFLAGS: "-Wno-null-dereference"
  tags:
    - docker

gcc-gentoo_sdl1:
  stage: build
  script:
  - ./tools/ci/jobs/any_compiler.sh --enable-werror
  - ./tools/ci/scripts/runtests.sh
  image: registry.gitlab.com/manaplus/images:gentoo_gcc_sdl1
  <<: *job-push
  variables:
    LOGFILE: gcc.log
    CC: gcc
    CXX: g++
    CXXFLAGS: "-Wall -Wextra"
    PMUPDATE: "echo"
    PMINSTALL: "echo"
  tags:
    - docker

gcc-gentoo_sdl2:
  stage: build
  script:
  - ./tools/ci/jobs/any_compiler.sh --with-sdl2 --enable-werror
  - ./tools/ci/scripts/runtests.sh
  image: registry.gitlab.com/manaplus/images:gentoo_gcc_sdl2
  <<: *job-push
  variables:
    LOGFILE: gcc.log
    CC: gcc
    CXX: g++
    CXXFLAGS: "-Wall -Wextra"
    PMUPDATE: "echo"
    PMINSTALL: "echo"
  tags:
    - docker

gcc8_without_mumble_sdl1:
  stage: build
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/gcc8.sh --without-mumble --enable-werror
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-8 g++-8 
              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
              git gdb valgrind netcat-openbsd procps

gcc8_without_mumble_sdl2:
  stage: build
  script:
  - ./tools/ci/jobs/gcc8.sh --with-sdl2 --without-mumble --enable-werror
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-8 g++-8 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev
              git gdb valgrind netcat-openbsd procps

gcc_portable:
  stage: build
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/gcc8.sh --with-opengl --enable-tmwa --enable-portable=yes
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-8 g++-8 
              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
              git gdb valgrind netcat-openbsd procps

gcc-8_no_asserts:
  stage: build
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/gcc8.sh --disable-asserts
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-8 g++-8 
              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
              git gdb valgrind netcat-openbsd procps

gcc-8_default_i386:
  stage: build
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/any_compiler.sh --enable-werror
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  image: vicamo/debian:sid-i386
  variables:
    LOGFILE: gcc8.log
    CC: gcc-8
    CXX: g++-8
    CXXFLAGS: "-Wall -Wextra"
    PACKAGES: gcc-8 g++-8 
              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
              git gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-8_openglerrors_i386:
  stage: build
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/gcc8.sh --enable-openglerrors
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  image: vicamo/debian:sid-i386
  variables:
    PACKAGES: gcc-8 g++-8 
              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
              git gdb valgrind netcat-openbsd procps

gcc-8_openglerrors:
  stage: build
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/gcc8.sh --enable-openglerrors
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-8 g++-8 
              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
              git gdb valgrind netcat-openbsd procps

gcc-8_unsigned_char:
  stage: build
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/gcc8.sh
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-8 g++-8 
              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
              git gdb valgrind netcat-openbsd procps
    POST_CXXFLAGS: "-funsigned-char"

gcc-8_unsigned_char_sdl2:
  stage: build
  script:
  - ./tools/ci/jobs/gcc8.sh --with-sdl2
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-8 g++-8 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev
              git gdb valgrind netcat-openbsd procps
    POST_CXXFLAGS: "-funsigned-char"

gcc-8_password:
  stage: build
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/gcc8.sh --enable-commandlinepassword
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-8 g++-8 
              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
              git gdb valgrind netcat-openbsd procps

gcc-8_password_sdl2:
  stage: build
  script:
  - ./tools/ci/jobs/gcc8.sh --enable-commandlinepassword --with-sdl2
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    PACKAGES: gcc-8 g++-8 
              make autoconf automake autopoint gettext 
              libxml2-dev libcurl4-gnutls-dev libpng-dev 
              libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev
              git gdb valgrind netcat-openbsd procps
