2016-08-03 17:22:54 +00:00
stages :
- build
- test
- staging
- production
## BUILDS
# Job de compilation pour Linux
Linux client build :
2016-05-17 13:04:33 +00:00
stage : build
only :
- develop
2016-08-03 17:22:54 +00:00
- /^release\/.*/
2016-05-17 13:04:33 +00:00
- /^feature\/.*(\+CI$|\+CI-LIN64.*)/
- tags
tags :
- Docker
2016-11-13 12:32:24 +00:00
image : ubuntu:16.04
2016-05-17 13:04:33 +00:00
script :
# Installation des dépendances
- apt-get update
2016-08-09 16:29:20 +00:00
- apt-get install -y g++ gcc cmake libgl1-mesa-dev libjpeg-dev libpng12-dev libopenal-dev libfreetype6-dev libxxf86vm-dev libxrandr-dev libxrender-dev libvorbis-dev libluabind-dev libboost-dev libmysqlclient-dev libssl-dev liblzma-dev libxml2-dev makeself
2016-05-17 13:04:33 +00:00
# Installation des dépendances des dépendances statiques (à commenter si construction de Khanat en mode dynamique)
# libxml2 : python-pyicu (support d'unicode), python-dev (support de... python)
- apt-get install -y wget python-pyicu python-dev
# Création de l'environnement de compilation
- mkdir -p BUILD/x86_64
- cd BUILD/x86_64
## Le curl des dépots a trop de dépendances en statique. On le recompile donc, afin d'aléger l'executable
# Téléchargement et décompression des dépendances à recompiller
2016-08-03 17:22:54 +00:00
- wget -c http://curl.haxx.se/download/curl-7.50.0.tar.gz
- tar xzf curl-7.50.0.tar.gz
2016-05-17 13:04:33 +00:00
# Compilation de curl
2016-08-03 17:22:54 +00:00
- cd curl-7.50.0
- ./configure --disable-ldap --disable-ldaps --disable-rtsp --disable-dict --disable-ipv6 --disable-crypto-auth --disable-sspi --disable-tls-srp --without-gnutls --without-librtmp --without-libidn --disable-versioned-symbols --disable-pop3 --without-libssh2 --with-ssl
2016-08-09 16:29:20 +00:00
- make install -j$(nproc)
2016-05-17 13:04:33 +00:00
- cd ..
## Compilation de Khanat
# Configuration
- cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/ -DCMAKE_BUILD_TYPE=Release -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_NEL_TESTS=OFF -DWITH_NEL_TOOLS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_STATIC_EXTERNAL=ON -DWITH_UNIX_STRUCTURE=OFF -DWITH_INSTALL_LIBRARIES=OFF -DWITH_LUA52=ON -DCURL_LIBRARY=/usr/local/lib/libcurl.a ../../code
# Compilation et installation
2016-08-09 16:29:20 +00:00
- make -j$(nproc) install DESTDIR=../../Linux/x86_64
# Packaging
- cd ../../
- cp ./dist/khanat/autoextract_script.sh ./Linux/x86_64/
- chmod +x ./Linux/x86_64/autoextract_script.sh
- makeself --nox11 --target /tmp/khanat_installer ./Linux/x86_64/ khanat-$(echo $CI_BUILD_REF | head -c 7 )-$CI_PIPELINE_ID-Linux-x86_64.run "Khanat installer" ./autoextract_script.sh
2016-05-17 13:04:33 +00:00
artifacts :
2016-08-09 16:29:20 +00:00
name : "khanat-$(echo $CI_BUILD_REF | head -c 7)-$CI_PIPELINE_ID-Linux-x86_64"
2016-05-17 13:04:33 +00:00
paths :
2016-08-09 16:29:20 +00:00
- khanat-$(echo $CI_BUILD_REF | head -c 7 )-$CI_PIPELINE_ID-Linux-x86_64.run
2016-05-17 13:04:33 +00:00
2016-08-03 17:22:54 +00:00
# Job de compilation pour OSX
OSX client build :
2016-05-17 13:04:33 +00:00
stage : build
only :
- develop
- /^feature\/.*(\+CI$|\+CI-OSX.*)/
- tags
tags :
- OSX
script :
# Création de l'environnement de compilation
- mkdir -p BUILD/x86_64
- cd BUILD/x86_64
# Configuration
- cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFINAL_VERSION=ON -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_NEL_TOOLS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_STATIC_EXTERNAL=ON -DWITH_RYZOM_PATCH=ON -DWITH_RYZOM_CUSTOM_PATCH_SERVER=ON -DWITH_LUA52=ON ../../code
# Compilation et installation
2016-08-03 17:22:54 +00:00
- make -j$(($(sysctl -n hw.ncpu)/2)) install DESTDIR=../../OSX/x86_64
2016-05-17 13:04:33 +00:00
artifacts :
2016-08-09 16:29:20 +00:00
name : "khanat-$(echo $CI_BUILD_REF | head -c 7 )-$CI_PIPELINE_ID-OSX-x86_64"
2016-05-17 13:04:33 +00:00
paths :
2016-08-09 16:29:20 +00:00
- OSX/x86_64/*
2016-08-03 17:22:54 +00:00
when : manual
## TESTS
2016-08-09 16:29:20 +00:00
Linux client test :
2016-08-03 17:22:54 +00:00
stage : test
only :
- develop
- /^release\/.*/
- /^feature\/.*(\+CI$|\+CI-LIN64.*)/
- tags
tags :
- Docker
image : ubuntu:14.04
script :
2016-08-09 16:29:20 +00:00
# Test de l'installation initiale
- ./khanat-$(echo $CI_BUILD_REF | head -c 7 )-$CI_PIPELINE_ID-Linux-x86_64.run
2016-08-03 17:22:54 +00:00
dependencies :
- Linux client build
.OSX client test :
stage : test
only :
- develop
- /^release\/.*/
- /^feature\/.*(\+CI$|\+CI-LIN64.*)/
- tags
tags :
- OSX
script :
- echo "pas encore de test pour le client OSX"
dependencies :
- OSX client build
when : manual
##DEPLOYEMENT TO STAGING (TEST SERVER)
# Job de déploiment vers le staging. Inutilisé pour le moment, il pourrait servir à l'avenir pour déployer automatiquement les nouvelles versions du client/serveur vers l'environnement de staging (zone de test)
.Deploy to Staging :
stage : staging
environment : Staging
only :
- develop
- /^release\/.*/
- tags
tags :
- Docker
image : ubuntu:14.04
script :
- echo "pas encore de deployment"
dependencies :
- Linux client build
- Linux client test
- OSX client build
- OSX client test
when : manual
##DEPLOYEMENT TO PRODUCTION
# Job de déploiment vers la production. Inutilisé pour le moment, il pourrait servir à l'avenir pour déployer automatiquement les nouvelles versions du client/serveur vers l'environnement de production
.Release to Production :
stage : production
environment : Production
only :
- tags
tags :
- Docker
image : ubuntu:14.04
script :
- echo "pas encore de tag"
dependencies :
- Linux client build
- Linux client test
- OSX client build
- OSX client test
- Deploy to Staging
when : manual