summaryrefslogblamecommitdiff
path: root/.gitlab-ci.yml
blob: 70505ba892004fc2d4645ae3cc9fca45c4c4b45b (plain) (tree)
1
2
3
4
5
6



             
           
 













                                                                 


                                                                                                                                         

                  









                                      


                        
                





                                                                                              
                                                                 



                        
                  





                                                                                            
                                                                 



                        
                  





                                                                                            
                                                                 



                        
                





                                                                                            
                                                                 



                        
                





                                                                                            
                                                                 



                        
                





                                                                                          
                                                                 



                        
                





                                                                                          
                                                                 



                        
                





                                                                                          
                                                                 



                        
                  





                                                                                                                                   
                                                                 



                        
                  





                                                                                                                                   
                                                                 



                        
                  





                                                                                                                                 







                                                                 


               


                        
                  





                                                                                 
                                                                 



                        
                  





                                                                                 
                                                                 



                        
                  





                                                                                 
                                                                 



                        
                  
                     

                  




                                                                                 
                                                                 


             


                        
                  







                                                                                 
                                                                 



                        
                  







                                                                                 
                                                                 



                        
                  








                                                                                 
                                                                 


                        
                  







                                             


                                                                                                                                         



                                                                                 
                                                                   


                        
                  







                                             


                                                                                                                                         



                                                                                 
                                                                   


                        
                  







                                        


                                                                                                                                         



                                                                                 
                                                                   

               





















                                                                                                                 
stages:
  - primary
  - secondary
  - platforms
#  - extras

variables: &base_vars
  # Configure mysql service (https://hub.docker.com/_/mysql/)
  MYSQL_DATABASE: 'ragnarok'
  MYSQL_USER: 'ragnarok'
  MYSQL_PASSWORD: 'ragnarok'
  MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
  GIT_DEPTH: '3'
  DEBIAN_COMMON_PACKAGES: make zlib1g-dev libpcre3-dev git python

.prerequisites: &prerequisites
  before_script:
    - echo "Building $CI_BUILD_NAME"
    - uname -a
    - ./tools/ci/retry.sh apt-get update
    - ./tools/ci/retry.sh apt-get install -y -qq $INSTALL_PACKAGES $DEBIAN_COMMON_PACKAGES libmysqlclient-dev autoconf automake autopoint
#    - ./tools/ci/travis.sh importdb ragnarok ragnarok ragnarok mysql
#    - ./tools/ci/travis.sh getplugins || true
  services:
    - mysql:latest

.branch_exceptions: &branch_exceptions
  only:
    - branches
  except:
    - rathena
    - coverity_scan

# Compilers

re:clang-3.9:
  <<: *branch_exceptions
  <<: *prerequisites
  stage: primary
  image: debian:unstable
  variables:
    <<: *base_vars
    INSTALL_PACKAGES: clang-3.9 mysql-client
  script:
    - ./tools/ci/travis.sh build CC=clang-3.9 --enable-debug --enable-Werror --enable-buildbot
#    - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql

re:gcc-4.6:
  <<: *branch_exceptions
  <<: *prerequisites
  stage: secondary
  image: debian:oldstable
  variables:
    <<: *base_vars
    INSTALL_PACKAGES: gcc-4.6 mysql-client
  script:
    - ./tools/ci/travis.sh build CC=gcc-4.6 --enable-debug --enable-Werror --enable-buildbot
#    - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql

re:gcc-4.7:
  <<: *branch_exceptions
  <<: *prerequisites
  stage: secondary
  image: debian:oldstable
  variables:
    <<: *base_vars
    INSTALL_PACKAGES: gcc-4.7 mysql-client
  script:
    - ./tools/ci/travis.sh build CC=gcc-4.7 --enable-debug --enable-Werror --enable-buildbot
#    - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql

re:gcc-4.8:
  <<: *branch_exceptions
  <<: *prerequisites
  stage: primary
  image: debian:stable
  variables:
    <<: *base_vars
    INSTALL_PACKAGES: gcc-4.8 mysql-client
  script:
    - ./tools/ci/travis.sh build CC=gcc-4.8 --enable-debug --enable-Werror --enable-buildbot
#    - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql

re:gcc-4.9:
  <<: *branch_exceptions
  <<: *prerequisites
  stage: primary
  image: debian:stable
  variables:
    <<: *base_vars
    INSTALL_PACKAGES: gcc-4.9 mysql-client
  script:
    - ./tools/ci/travis.sh build CC=gcc-4.9 --enable-debug --enable-Werror --enable-buildbot
#    - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql

re:gcc-5:
  <<: *branch_exceptions
  <<: *prerequisites
  stage: primary
  image: debian:unstable
  variables:
    <<: *base_vars
    INSTALL_PACKAGES: gcc-5 mysql-client
  script:
    - ./tools/ci/travis.sh build CC=gcc-5 --enable-debug --enable-Werror --enable-buildbot
#    - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql

re:gcc-6:
  <<: *branch_exceptions
  <<: *prerequisites
  stage: primary
  image: debian:unstable
  variables:
    <<: *base_vars
    INSTALL_PACKAGES: gcc-6 mysql-client
  script:
    - ./tools/ci/travis.sh build CC=gcc-6 --enable-debug --enable-Werror --enable-buildbot
#    - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql

re:gcc-6_i386:
  <<: *branch_exceptions
  <<: *prerequisites
  stage: primary
  image: vicamo/debian:sid-i386
  variables:
    <<: *base_vars
    INSTALL_PACKAGES: gcc-6 mysql-client
  script:
    - ./tools/ci/travis.sh build CC=gcc-6 --enable-debug --enable-Werror --enable-buildbot
#    - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql

re:gcc-6_sanitize:
  <<: *branch_exceptions
  <<: *prerequisites
  stage: secondary
  image: debian:unstable
  variables:
    <<: *base_vars
    INSTALL_PACKAGES: gcc-6 mysql-client
  script:
    - ./tools/ci/travis.sh build CC=gcc-6 --enable-debug --enable-Werror --enable-buildbot --disable-manager --enable-sanitize=full
#    - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql

re:gcc-6_i386_sanitize:
  <<: *branch_exceptions
  <<: *prerequisites
  stage: secondary
  image: vicamo/debian:sid-i386
  variables:
    <<: *base_vars
    INSTALL_PACKAGES: gcc-6 mysql-client
  script:
    - ./tools/ci/travis.sh build CC=gcc-6 --enable-debug --enable-Werror --enable-buildbot --disable-manager --enable-sanitize=full
#    - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql

re:gcc-6_cov:
  <<: *branch_exceptions
  <<: *prerequisites
  stage: secondary
  image: debian:unstable
  variables:
    <<: *base_vars
    INSTALL_PACKAGES: gcc-6 gcovr mysql-client
  script:
    - ./tools/ci/travis.sh build CC=gcc-6 --enable-debug --enable-Werror --enable-buildbot CFLAGS="-coverage" LDFLAGS="-coverage"
#    - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
#    - gcovr -r . --gcov-executable=gcov-6 -o gcov_re.txt
#    - gcovr -r . --gcov-executable=gcov-6 --html -o gcov_re.html
#    - cat gcov_re.txt
#  artifacts:
#    paths:
#      - gcov_re.*
#    when: on_success

# Distributions

re:debian-oldstable:
  <<: *branch_exceptions
  <<: *prerequisites
  stage: platforms
  image: debian:wheezy
  variables:
    <<: *base_vars
    INSTALL_PACKAGES: gcc mysql-client
  script:
    - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot
#    - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql

re:debian-stable:
  <<: *branch_exceptions
  <<: *prerequisites
  stage: platforms
  image: debian:jessie
  variables:
    <<: *base_vars
    INSTALL_PACKAGES: gcc mysql-client
  script:
    - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot
#    - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql

re:debian-testing:
  <<: *branch_exceptions
  <<: *prerequisites
  stage: platforms
  image: debian:stretch
  variables:
    <<: *base_vars
    INSTALL_PACKAGES: gcc mysql-client
  script:
    - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot
#    - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql

re:ubuntu-xenial:
  <<: *branch_exceptions
  <<: *prerequisites
  stage: platforms
  image: ubuntu:16.04
  services:
    - mysql:latest
  variables:
    <<: *base_vars
    INSTALL_PACKAGES: gcc mysql-client
  script:
    - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot
#    - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql

# SQL servers

re:mysql-5.5:
  <<: *branch_exceptions
  <<: *prerequisites
  stage: platforms
  image: debian:stable
  variables:
    <<: *base_vars
    INSTALL_PACKAGES: gcc mysql-client-5.5
  services:
    - mysql:5.5
  script:
    - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot
#    - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql

re:mysql-5.6:
  <<: *branch_exceptions
  <<: *prerequisites
  stage: platforms
  image: debian:unstable
  variables:
    <<: *base_vars
    INSTALL_PACKAGES: gcc mysql-client-5.6
  services:
    - mysql:5.6
  script:
    - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot
#    - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql

re:mysql-5.7:
  <<: *branch_exceptions
  <<: *prerequisites
  stage: platforms
  image: debian:unstable
  variables:
    <<: *base_vars
    # mysql-client-5.7 is not available
    INSTALL_PACKAGES: gcc mysql-client
  services:
    - mysql:5.7
  script:
    - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot
#    - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql

re:mariadb-10:
  <<: *branch_exceptions
  stage: platforms
  image: debian:stable
  variables:
    <<: *base_vars
    INSTALL_PACKAGES: gcc mariadb-client-10.0
  before_script:
    - echo "Building $CI_BUILD_NAME"
    - uname -a
    - ./tools/ci/retry.sh apt-get update
    - ./tools/ci/retry.sh apt-get install -y -qq $INSTALL_PACKAGES $DEBIAN_COMMON_PACKAGES libmysqlclient-dev autoconf automake autopoint
#    - ./tools/ci/travis.sh importdb ragnarok ragnarok ragnarok mariadb
#    - ./tools/ci/travis.sh getplugins || true
  services:
    - mariadb:10.0
  script:
    - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot
#    - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mariadb

re:mariadb-latest:
  <<: *branch_exceptions
  stage: platforms
  image: debian:stable
  variables:
    <<: *base_vars
    INSTALL_PACKAGES: gcc mariadb-client-10.0
  before_script:
    - echo "Building $CI_BUILD_NAME"
    - uname -a
    - ./tools/ci/retry.sh apt-get update
    - ./tools/ci/retry.sh apt-get install -y -qq $INSTALL_PACKAGES $DEBIAN_COMMON_PACKAGES libmysqlclient-dev autoconf automake autopoint
#    - ./tools/ci/travis.sh importdb ragnarok ragnarok ragnarok mariadb
#    - ./tools/ci/travis.sh getplugins || true
  services:
    - mariadb:latest
  script:
    - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot
#    - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mariadb

re:percona:
  <<: *branch_exceptions
  stage: platforms
  image: debian:stable
  variables:
    <<: *base_vars
    INSTALL_PACKAGES: gcc mysql-client
  before_script:
    - echo "Building $CI_BUILD_NAME"
    - uname -a
    - ./tools/ci/retry.sh apt-get update
    - ./tools/ci/retry.sh apt-get install -y -qq $INSTALL_PACKAGES $DEBIAN_COMMON_PACKAGES libmysqlclient-dev autoconf automake autopoint
#    - ./tools/ci/travis.sh importdb ragnarok ragnarok ragnarok percona
#    - ./tools/ci/travis.sh getplugins || true
  services:
    - percona:latest
  script:
    - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot
#    - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok percona

# Documentation
#pages:
#  only:
#    - master
#  stage: extras
#  image: debian:unstable
#  before_script:
#    - echo "Building $CI_BUILD_NAME"
#    - uname -a
#    - ./tools/ci/retry.sh apt-get update
#    - ./tools/ci/retry.sh apt-get install -y -qq gcc $DEBIAN_COMMON_PACKAGES libmysqlclient-dev doxygen graphviz
#  script:
#    - ./configure
#    - make docs
#    - mkdir public
#    - mv tools/doxygen/docs/html public/docs
#    - mv gcov_*.* public/
#    - cp tools/doxygen/pages_index.html public/index.html
#  dependencies:
#    - re:gcc-6_cov
#  artifacts:
#    paths:
#      - public