summaryrefslogblamecommitdiff
path: root/.gitlab-ci.yml
blob: cfb7ba73c713dbc822d510fee4cbfff715f8b8e3 (plain) (tree)
1
2
3
4
5
6
7
8
9
       
            
         
 
                                        
              


                            
                                          

                           

                                                               
 
                      
          

                                 


                                                
                                                  
                
 










                        


            
                
                     
                  
 

           
                 
                 
         
                                   
                                 
                                  
                           
               
            
                          
                                                       
                                                         
                                                                                                            
                                                

            
 
           
                 
         
                                   
                           
                                  
                             
               
            
                          
                                                       

                                                                                                           
                                                


            


                 
                                   

                                  
                                   
                             









                                                                                                           
          
                 
         
                                   
                              
                                  
                                   
                       
               
            
                                                 
                                                       

                                                                                                           
                                                
 
      
                 
         
                                   
                           
                                  
                                   
                       
               

                          
                                                       

                                                                                                           
                                                
 
      

                 
                                   
                           
                                  
                                   

               
                          




                                                                                                           


                 
                                   

                                                   
                                   
                       









                                                                                                           
                                                
 


                 
                                   

                                                   
                                   











                                                                                                           
                   
                 

           
                               
               
                                                        





                                  
                   
                 

           
                               
               
                                                        





                                    
           
                 

                                
                                   
                                  

                                      
               
                      

                          
                                                       

                                                                                                 
                                                
 
                
                 
         
                                   
                                            
                                  
               
            
                          
                                                       

                                                                                                           
                                                
 
                  
                 
         
                                   
                                                  
                                   
               
            
                          
                                                       


                                                                                                           
                   
                 
         
                                   
                                                                                                
               
            
                          



                                                                                                           
       
                 

                                 
                                
                                  
               


                                                      
 
        
                 
         

                                      
                              
                                   
               
            
                                                       

            
                 
         
                                   
                                                                                                                                 
                                                                                                       
                                                                                                                                                                                 

                                                                                                                    
               
                      

                          
                                                       

                                                                                                           
 
                 
                 
         
                                   
                                                                                                                                 
                                                                                                       
                                                                                                                                                                                 

                                                                                                                    
                           
               

                          
                                                       

                                                                                                           


            

       







                                  
 

                                  



                                                                         
                                                            
                                                                                   
                                                                                                                                                                                     

                                                                                                                                
                                            
               


                            
                          
                                                                  
                                                                                                                                      

                        
           





                                                                             

                                  


                                                              

                                                                                                                                                                                                 

                                                                                                                                
                                            
               


                            
                          
                                                                  
                                                                                                                     

                        
           





                                                                             
                         
                                 




                                                                                   
                                                                                                                                                                                     

                                                                                                                                
               


                       
                          
                                                                  
                                                                                                                                      






                                                                             

                                 


                                                              
                                                                                                                                                                                                 

                                                                                                                                
               


                       
                          
                                                                  
                                                                                                                     







                                                                             

                                     




                                                                                   
                                                                                                                                                                                     

                                                                                                                                
               


                           
                          
                                                                  
                                                                                                                                      








                                                                             

                                     


                                                              
                                                                                                                                                                                                 

                                                                                                                                
               


                           
                          
                                                                  
                                                                                                                     








                                                                             
                                   
                       

              
                                   
                                                              
                                                                                 
                                                                                                     
                                                                                        
               


                       
                          
                                                       

                                                                                                           
                                                           


            

                            




                                                                                   
                                                                                                                
                                                                                                              




                                       
                          
                                                                  
                                                                                                                                      
                                     





                                                                             

                            


                                                              
                                                                                                                            
                                                                                                              




                                       
                          
                                                                  
                                                                                                                     
                                     






                                                                             

                                




                                                                                   
                                                                                                                
                                                                                                              




                                       
                          
                                                                  
                                                                                                                                      
                                     







                                                                             

                                


                                                              
                                                                                                                            
                                                                                                              

                                       


                           
                          
                                                                  
                                                                                                                     
                                     






                                                                             
stages:
  - prebuild
  - build

# 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"

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
    when: always
    expire_in: 3 week
  except:
    - triggers
  dependencies: []

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

# pre build

gcc-5_c++11_i386:
  stage: prebuild
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/gcc5_c++11.sh
  - ./tools/ci/scripts/runtests.sh
  image: i386/ubuntu:cosmic
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              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 
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-8-i386:
  stage: prebuild
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/gcc8.sh
  - ./tools/ci/scripts/runtests.sh
  image: i386/debian:unstable
  <<: *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
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

gcc-7-i386:
  stage: prebuild
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/gcc7.sh
  - ./tools/ci/scripts/runtests.sh
  - ./tools/ci/scripts/rundyecmd.sh
  image: i386/debian:unstable
  <<: *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
              gdb valgrind netcat-openbsd procps
  tags:
    - docker

clang-3.9:
  stage: prebuild
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/clang39.sh
  - ./tools/ci/scripts/runtests.sh
  - ./tools/ci/scripts/rundyecmd.sh
  image: debian:stretch
  <<: *job-push
  variables:
    PACKAGES: clang-3.9 libc++-dev libc++abi-dev 
              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
              gdb valgrind netcat-openbsd procps

gcc-6:
  stage: prebuild
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/gcc6.sh
  - ./tools/ci/scripts/runtests.sh
  - ./tools/ci/scripts/rundyecmd.sh
  image: debian:stretch
  <<: *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
              gdb valgrind netcat-openbsd procps

gcc-8:
  stage: prebuild
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/gcc8.sh
  - ./tools/ci/scripts/runtests.sh
  - ./tools/ci/scripts/rundyecmd.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
              gdb valgrind netcat-openbsd procps

gcc-6_default:
  stage: prebuild
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/any_compiler.sh --enable-werror
  - ./tools/ci/scripts/runtests.sh
  - ./tools/ci/scripts/rundyecmd.sh
  image: debian:stretch
  <<: *job-push
  variables:
    LOGFILE: gcc6.log
    CC: gcc-6
    CXX: g++-6
    CXXFLAGS: "-Wall -Wextra"
    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
              gdb valgrind netcat-openbsd procps

gcc-7_default:
  stage: prebuild
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/any_compiler.sh --enable-werror
  - ./tools/ci/scripts/runtests.sh
  - ./tools/ci/scripts/rundyecmd.sh
  <<: *job-push
  variables:
    LOGFILE: gcc6.log
    CC: gcc-7
    CXX: g++-7
    CXXFLAGS: "-Wall -Wextra"
    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
              gdb valgrind netcat-openbsd procps

mxe_gcc6_shared_32:
  stage: prebuild
  script:
  - ls /mxe
  - ./tools/ci/jobs/mxe_gcc6.sh
  <<: *job-push
  image: registry.gitlab.com/manaplus/mxe:gcc6_shared_32
  variables:
    PACKAGES: bash
    CROSS: i686-w64-mingw32.shared
  tags:
    - docker

mxe_gcc6_shared_64:
  stage: prebuild
  script:
  - ls /mxe
  - ./tools/ci/jobs/mxe_gcc6.sh
  <<: *job-push
  image: registry.gitlab.com/manaplus/mxe:gcc6_shared_64
  variables:
    PACKAGES: bash
    CROSS: x86_64-w64-mingw32.shared
  tags:
    - docker

gcc-5_sdl2:
  stage: prebuild
  script:
  - ./tools/ci/jobs/gcc5_sdl2.sh
  - ./tools/ci/scripts/rundyecmd.sh
  - ./tools/ci/scripts/runtests.sh
  - ./tools/ci/jobs/gcc5_sdl2_c++11.sh
  - ./tools/ci/scripts/runtests.sh
  <<: *job-push
  image: ubuntu:cosmic
  variables:
    PACKAGES: gcc-5 g++-5 
              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
              gdb valgrind netcat-openbsd procps

gcc-7_game_only:
  stage: prebuild
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/gcc7.sh --without-dyecmd
  - ./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
              gdb valgrind netcat-openbsd procps

gcc-7_dyecmd_only:
  stage: prebuild
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/gcc7.sh --without-manaplusgame
  - ./tools/ci/scripts/rundyecmd.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

gcc-8_unittestsbin:
  stage: prebuild
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/gcc8_silent.sh --enable-unittestsbin --without-manaplusgame --without-dyecmd
  <<: *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

mplint:
  stage: prebuild
  script:
  - ./tools/ci/jobs/mplint.sh src
  - ./tools/ci/jobs/mplint.sh po
  - ./tools/ci/jobs/mplint.sh data
  <<: *job-push
  variables:
    PACKAGES: gcc g++ git 
              make autoconf automake autopoint gettext

linters:
  stage: prebuild
  script:
  - ./tools/ci/jobs/pngcheck.sh
  - ./tools/ci/jobs/imagemagiccheck.sh
  - ./tools/ci/jobs/cpplint.sh
  - ./tools/ci/jobs/nsiqcppstyle.sh
  <<: *job-push
  variables:
    PACKAGES: python wget pngcheck imagemagick git grep

gcc-5_h_all:
  stage: prebuild
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/gcc5_h.sh -std=c++0x -DDEBUGBUILD -DTMWA_SUPPORT -DENABLE_NLS -DUSE_OPENGL -DENABLE_LIBXML -I/usr/include/SDL
  - ./tools/ci/jobs/gcc5_h.sh -std=c++0x -DDEBUGBUILD -DTMWA_SUPPORT -DENABLE_LIBXML -I/usr/include/SDL
  - ./tools/ci/jobs/gcc5_h.sh -std=c++0x -DDEBUGBUILD -DTMWA_SUPPORT -DENABLE_NLS -DUSE_OPENGL -DENABLE_LIBXML -DUNITTESTS -DUNITTESTS_CATCH -DUNITTESTS_EMBED -I/usr/include/SDL
  - ./tools/ci/jobs/gcc5_h.sh -std=c++0x -DDEBUGBUILD -DTMWA_SUPPORT -DENABLE_NLS -DENABLE_LIBXML -I/usr/include/SDL
  - ./tools/ci/jobs/gcc5_h.sh -std=c++0x -DDEBUGBUILD -DENABLE_NLS -DUSE_OPENGL -DENABLE_LIBXML -I/usr/include/SDL
  <<: *job-push
  image: ubuntu:cosmic
  variables:
    PACKAGES: gcc-5 g++-5 
              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

gcc-5_h_all_i386:
  stage: prebuild
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/jobs/gcc5_h.sh -std=c++0x -DDEBUGBUILD -DTMWA_SUPPORT -DENABLE_NLS -DUSE_OPENGL -DENABLE_LIBXML -I/usr/include/SDL
  - ./tools/ci/jobs/gcc5_h.sh -std=c++0x -DDEBUGBUILD -DTMWA_SUPPORT -DENABLE_LIBXML -I/usr/include/SDL
  - ./tools/ci/jobs/gcc5_h.sh -std=c++0x -DDEBUGBUILD -DTMWA_SUPPORT -DENABLE_NLS -DUSE_OPENGL -DENABLE_LIBXML -DUNITTESTS -DUNITTESTS_CATCH -DUNITTESTS_EMBED -I/usr/include/SDL
  - ./tools/ci/jobs/gcc5_h.sh -std=c++0x -DDEBUGBUILD -DTMWA_SUPPORT -DENABLE_NLS -DENABLE_LIBXML -I/usr/include/SDL
  - ./tools/ci/jobs/gcc5_h.sh -std=c++0x -DDEBUGBUILD -DENABLE_NLS -DUSE_OPENGL -DENABLE_LIBXML -I/usr/include/SDL
  image: i386/ubuntu:cosmic
  <<: *job-push
  variables:
    PACKAGES: gcc-5 g++-5 
              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
  tags:
    - docker

# tests

triggers:
  stage: build
  script:
  - ./tools/ci/scripts/triggers.sh
  <<: *job-push
  variables:
    PACKAGES: curl


# disabled due gitlab bug
.gcc-7_SDL_SDL-1.2_sanitize2_test:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - echo /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvz}
  - export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.4
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} env
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc7_sanitize_tests.sh --enable-unittests=yes --without-manaplusgame --without-dyecmd
  - export LD_PRELOAD
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/checkldd.sh src/manaplustests
  - ldd ./src/manaplustests | grep "libasan"
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: SDL-1.2_asan
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libglu1-mesa-dev libicu-dev 
              valgrind 
              wget unzip
    JOBS: 1
    ASAN_OPTIONS: "detect_leaks=0"
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_master.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_master.sh
  tags:
    - docker

# disabled due gitlab bug
.gcc-7_SDL_default_sanitize2_test:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.4
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc7_sanitize_tests.sh --enable-unittests=yes --with-sdl2 --without-manaplusgame --without-dyecmd
  - export LD_PRELOAD
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/checkldd.sh src/manaplustests
  - ldd ./src/manaplustests | grep "libasan"
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: default_asan
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libicu-dev 
              valgrind 
              wget unzip
    JOBS: 1
    ASAN_OPTIONS: "detect_leaks=0"
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_master.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_master.sh
  tags:
    - docker

# disabled due gitlab bug
.gcc-7_SDL_SDL-1.2_sanitize_test:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - echo /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvz}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} env
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc7_sanitize_tests.sh --enable-unittests=yes --without-manaplusgame --without-dyecmd
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/checkldd.sh src/manaplustests
  - ldd ./src/manaplustests | grep "libasan"
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: SDL-1.2
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libglu1-mesa-dev libicu-dev 
              valgrind 
              wget unzip
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_master.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_master.sh
  tags:
    - docker

# disabled due gitlab bug
.gcc-7_SDL_default_sanitize_test:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc7_sanitize_tests.sh --enable-unittests=yes --with-sdl2 --without-manaplusgame --without-dyecmd
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/checkldd.sh src/manaplustests
  - ldd ./src/manaplustests | grep "libasan"
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: default
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libicu-dev 
              valgrind 
              wget unzip
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_master.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_master.sh
  tags:
    - docker


# disabled due gitlab bug
.gcc-7_SDL_SDL-1.2_old_sanitize_test:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - echo /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvz}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} env
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc7_sanitize_tests.sh --enable-unittests=yes --without-manaplusgame --without-dyecmd
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/checkldd.sh src/manaplustests
  - ldd ./src/manaplustests | grep "libasan"
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: SDL-1.2_old
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libglu1-mesa-dev libicu-dev 
              valgrind 
              libjpeg-dev libtiff-dev
              wget unzip
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_v1.2.5.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_v2.9.1.sh
    POST_CXXFLAGS: "-Wno-undef"
  tags:
    - docker

# disabled due gitlab bug
.gcc-7_SDL_default_old_sanitize_test:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc7_sanitize_tests.sh --enable-unittests=yes --with-sdl2 --without-manaplusgame --without-dyecmd
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/checkldd.sh src/manaplustests
  - ldd ./src/manaplustests | grep "libasan"
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: default_old
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libicu-dev 
              valgrind 
              libjpeg-dev libtiff-dev
              wget unzip
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_v1.2.5.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_v2.9.1.sh
    POST_CXXFLAGS: "-Wno-undef"
  tags:
    - docker

# error compilation. cant find SDL.
.gcc-7_zlib_ng_develop:
  stage: build
  script:
  - ./tools/ci/scripts/patchsdl1.sh
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/jobs/gcc7.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/checkldd.sh src/manaplus
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ./tools/ci/scripts/runtests.sh
  <<: *job-push
  variables:
    LIBNAME: zlib_ng
    LIBVERSION: develop
    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
              wget unzip gdb valgrind netcat-openbsd procps
  tags:
    - docker

# disabled due gitlab bug
.gcc-7_SDL_SDL-1.2_sanitize:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - echo /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvz}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} env
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc7_sanitize.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/runtests.sh
  - ldd ./src/manaplus | grep "libasan"
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: SDL-1.2
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libglu1-mesa-dev libicu-dev 
              valgrind netcat-openbsd
              wget unzip
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_master.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_master.sh
  tags:
    - docker

# disabled due gitlab bug
.gcc-7_SDL_default_sanitize:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc7_sanitize.sh --with-sdl2
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/runtests.sh
  - ldd ./src/manaplus | grep "libasan"
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: default
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libicu-dev 
              valgrind netcat-openbsd
              wget unzip
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_master.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_master.sh
  tags:
    - docker


# disabled due gitlab bug
.gcc-7_SDL_SDL-1.2_old_sanitize:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - echo /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvz}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} env
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc7_sanitize.sh
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/runtests.sh
  - ldd ./src/manaplus | grep "libasan"
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: SDL-1.2_old
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libglu1-mesa-dev libicu-dev 
              valgrind netcat-openbsd
              libjpeg-dev libtiff-dev
              wget unzip
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_v1.2.5.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_v2.9.1.sh
    POST_CXXFLAGS: "-Wno-undef"
  tags:
    - docker

# disabled due gitlab bug
.gcc-7_SDL_default_old_sanitize:
  stage: build
  script:
  - ./tools/ci/scripts/downloadlib.sh ${LIBNAME} ${LIBVERSION}
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/jobs/gcc7_sanitize.sh --with-sdl2
  - /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runenv.sh ${runenvx} ${runenvz} ./tools/ci/scripts/runtests.sh
  - ldd ./src/manaplus | grep "libasan"
  <<: *job-push
  variables:
    LIBNAME: SDL
    LIBVERSION: default_old
    PACKAGES: gcc-7 g++-7 
              make autoconf automake autopoint gettext pkg-config 
              libx11-dev libxext-dev libxt-dev libxv-dev x11proto-core-dev libgl1-mesa-dev libasound2-dev libicu-dev 
              valgrind netcat-openbsd
              libjpeg-dev libtiff-dev
              wget unzip
    runenvz: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runzlib_v1.2.5.sh
    runenvx: /usr/local/spm/bin/${LIBNAME}_${LIBVERSION}/runlibxml2_v2.9.1.sh
    POST_CXXFLAGS: "-Wno-undef"
  tags:
    - docker