Merge branch 'aleajactaest/khanat-opennel-code-develop' into develop

This commit is contained in:
deed 2018-03-24 14:25:19 +01:00
commit f81c3b5e33

View file

@ -1,8 +1,30 @@
# Build manually : # Configuration for Continous Integration
#
# Copyright (C) 2017 AleaJactaEst
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# Example to execute locally:
# gitlab-runner exec docker --timeout=3600 'Linux client build'
# gitlab-runner exec docker --timeout=3600 'Linux server debian_amd64_strech build' # gitlab-runner exec docker --timeout=3600 'Linux server debian_amd64_strech build'
# gitlab-runner exec docker --timeout=3600 'Linux client debian_amd64_strech build' # gitlab-runner exec docker --timeout=3600 'Linux client debian_amd64_strech build'
# gitlab-runner exec docker --timeout=3600 'Linux client_static debian_amd64_strech build' # gitlab-runner exec docker --timeout=3600 'Linux client_static debian_amd64_strech build'
# gitlab-runner exec docker --kubernetes-memory-limit='10g' --timeout=3600 'Linux client build' # gitlab-runner exec docker --kubernetes-memory-limit='10g' --timeout=3600 'Linux client build'
# gitlab-runner exec docker --kubernetes-memory-limit='10g' --timeout=3600 'Linux client archlinux build'
# gitlab-runner exec docker --kubernetes-memory-limit='10g' --timeout=3600 'Linux client fedora_amd64_27 build'
# gitlab-runner exec docker --kubernetes-memory-limit='10g' --timeout=3600 'Linux client ubuntu_amd64_17_10 build'
stages: stages:
- build - build
- test - test
@ -49,7 +71,10 @@ Linux client build:
# Configuration # 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 ../../code - 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 ../../code
# Compilation et installation # Compilation et installation
- make $optionproc install DESTDIR=../../Linux/x86_64 - make $optionproc khanat_client_patcher khanat_client
#- make $optionproc install DESTDIR=../../Linux/x86_64
- mkdir -p ../../Linux/x86_64
- cp bin/* ../../Linux/x86_64
# Packaging # Packaging
- cd ../../ - cd ../../
- cp ./dist/khanat/autoextract_script.sh ./Linux/x86_64/ - cp ./dist/khanat/autoextract_script.sh ./Linux/x86_64/
@ -68,9 +93,10 @@ Linux server debian_amd64_strech build:
script: script:
# Prepare environment # Prepare environment
- apt-get update - apt-get update
- apt-get dist-upgrade -y - apt-get dist-upgrade -y
- DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server - DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server
- apt-get install -y git - apt-get install -y
git
libcurl4-openssl-dev libcurl4-openssl-dev
libfreetype6-dev libfreetype6-dev
libx11-dev libx11-dev
@ -120,7 +146,7 @@ Linux server debian_amd64_strech build:
- (cd code/build; make ryzom_admin_service ryzom_ai_service ryzom_backup_service ryzom_dynamic_scenario_service ryzom_entities_game_service ryzom_frontend_service ryzom_general_utilities_service ryzom_gpm_service ryzom_ios_service ryzom_log_analyser_service ryzom_logger_service ryzom_mail_forum_service ryzom_mirror_service ryzom_mission_compiler ryzom_monitor_service ryzom_naming_service ryzom_patchman_service ryzom_pd_support_service ryzom_persistant_data_service ryzom_reference_builder_service ryzom_session_browser_service ryzom_shard_unifier_service ryzom_tick_service ryzom_welcome_service sheets_packer bnp_make make_sheet_id patch_gen) - (cd code/build; make ryzom_admin_service ryzom_ai_service ryzom_backup_service ryzom_dynamic_scenario_service ryzom_entities_game_service ryzom_frontend_service ryzom_general_utilities_service ryzom_gpm_service ryzom_ios_service ryzom_log_analyser_service ryzom_logger_service ryzom_mail_forum_service ryzom_mirror_service ryzom_mission_compiler ryzom_monitor_service ryzom_naming_service ryzom_patchman_service ryzom_pd_support_service ryzom_persistant_data_service ryzom_reference_builder_service ryzom_session_browser_service ryzom_shard_unifier_service ryzom_tick_service ryzom_welcome_service sheets_packer bnp_make make_sheet_id patch_gen)
- (cd code/build/bin; ls -lh) - (cd code/build/bin; ls -lh)
artifacts: artifacts:
name: "khanat-server-debian_strech-$(echo $CI_BUILD_REF | head -c 7 )-$CI_PIPELINE_ID" name: "khanat-server-debian_strech-$CI_COMMIT_REF_NAME"
paths: paths:
- code/build/bin - code/build/bin
expire_in: 2 week expire_in: 2 week
@ -134,41 +160,38 @@ Linux client debian_amd64_strech build:
script: script:
# Prepare environment # Prepare environment
- apt-get update - apt-get update
- apt-get dist-upgrade -y - apt-get dist-upgrade -y
- apt-get install -y libfreetype6-dev - apt-get install -y autoconf
libx11-dev autogen
libgl1-mesa-dev automake
libxxf86vm-dev bison
libxrandr-dev build-essential
libxrender-dev cmake
libopenal-dev cpputest
libxml2-dev fakeroot
cmake libboost-all-dev
build-essential libfreetype6-dev
libpng-dev libgif-dev
libjpeg62-turbo-dev libgl1-mesa-dev
rrdtool libjpeg62-turbo-dev
bison liblzma-dev
libxmu-dev libopenal-dev
autoconf libpng-dev
automake libssh2-1-dev
libgif-dev libssl-dev
cpputest libtool
libssl-dev libtool-bin
liblzma-dev libx11-dev
unzip libxml2-dev
zlib1g-dev libxmu-dev
libssh2-1-dev libxrandr-dev
libboost-all-dev libxrender-dev
libopenal-dev libxxf86vm-dev
libgl1-mesa-dev mercurial
mercurial rrdtool
wget unzip
autogen wget
libtool zlib1g-dev
libtool-bin
fakeroot
libxml2-dev
- apt-get install -y liblua5.2-0 liblua5.2-dev libluabind-dev libluabind0.9.1v5 libogg-dev libvorbis-dev - apt-get install -y liblua5.2-0 liblua5.2-dev libluabind-dev libluabind0.9.1v5 libogg-dev libvorbis-dev
# Build Curl # Build Curl
- wget -q https://curl.haxx.se/download/curl-7.58.0.tar.gz -O curl.tar.gz - wget -q https://curl.haxx.se/download/curl-7.58.0.tar.gz -O curl.tar.gz
@ -189,7 +212,6 @@ Linux client debian_amd64_strech build:
- code/build/bin - code/build/bin
expire_in: 2 week expire_in: 2 week
Linux client_static debian_amd64_strech build: Linux client_static debian_amd64_strech build:
stage: build stage: build
tags: tags:
@ -198,41 +220,39 @@ Linux client_static debian_amd64_strech build:
script: script:
# Prepare environment # Prepare environment
- apt-get update - apt-get update
- apt-get dist-upgrade -y - apt-get dist-upgrade -y
- apt-get install -y libfreetype6-dev - apt-get install -y
libx11-dev
libgl1-mesa-dev
libxxf86vm-dev
libxrandr-dev
libxrender-dev
libopenal-dev
libxml2-dev
cmake
build-essential
libpng-dev
libjpeg62-turbo-dev
rrdtool
bison
libxmu-dev
autoconf autoconf
automake
libgif-dev
cpputest
libssl-dev
liblzma-dev
unzip
zlib1g-dev
libssh2-1-dev
libboost-all-dev
libopenal-dev
libgl1-mesa-dev
mercurial
wget
autogen autogen
automake
bison
build-essential
cmake
cpputest
fakeroot
libboost-all-dev
libfreetype6-dev
libgif-dev
libgl1-mesa-dev
libjpeg62-turbo-dev
liblzma-dev
libopenal-dev
libpng-dev
libssh2-1-dev
libssl-dev
libtool libtool
libtool-bin libtool-bin
fakeroot libx11-dev
libxml2-dev libxml2-dev
libxmu-dev
libxrandr-dev
libxrender-dev
libxxf86vm-dev
mercurial
rrdtool
unzip
wget
zlib1g-dev
- apt-get install -y liblua5.2-0 liblua5.2-dev - apt-get install -y liblua5.2-0 liblua5.2-dev
# Build Curl # Build Curl
- wget -q https://curl.haxx.se/download/curl-7.58.0.tar.gz -O curl.tar.gz - wget -q https://curl.haxx.se/download/curl-7.58.0.tar.gz -O curl.tar.gz
@ -269,7 +289,14 @@ Linux client_static debian_amd64_strech build:
- mkdir -p libvorbis - mkdir -p libvorbis
- wget -q http://security.debian.org/debian-security/pool/updates/main/libv/libvorbis/libvorbis_1.3.5.orig.tar.gz -O libvorbis.tar.gz - wget -q http://security.debian.org/debian-security/pool/updates/main/libv/libvorbis/libvorbis_1.3.5.orig.tar.gz -O libvorbis.tar.gz
- tar xvf libvorbis.tar.gz -C libvorbis --strip 1 || exit 2 - tar xvf libvorbis.tar.gz -C libvorbis --strip 1 || exit 2
- wget -q http://security.debian.org/debian-security/pool/updates/main/libv/libvorbis/libvorbis_1.3.5-4+deb9u1.debian.tar.xz -O libvorbis.debian.tar.xz # Get list package
- wget -q http://security.debian.org/debian-security/pool/updates/main/libv/libvorbis -O list_libvorbis
# get last patch for our release
- line=$(egrep '(libvorbis_1.3.5)(.*)(tar[.]xz)' list_libvorbis | tail -n 1)
# get only name of the patch
- tmp=${line#*href} ; tmp2=${tmp%%>*} ; tmp3=${tmp2#*\"} ; namepatch=${tmp3%\"*}
# download this patch
- wget -q http://security.debian.org/debian-security/pool/updates/main/libv/libvorbis/$namepatch -O libvorbis.debian.tar.xz
- tar xvf libvorbis.debian.tar.xz -C libvorbis || exit 2 - tar xvf libvorbis.debian.tar.xz -C libvorbis || exit 2
- cd libvorbis - cd libvorbis
- for file in $(cat debian/patches/series); do patch -p1 < debian/patches/$file; done - for file in $(cat debian/patches/series); do patch -p1 < debian/patches/$file; done
@ -285,11 +312,213 @@ Linux client_static debian_amd64_strech build:
- (cd code/build; make khanat_client) - (cd code/build; make khanat_client)
- (cd code/build/bin; ls -lh) - (cd code/build/bin; ls -lh)
artifacts: artifacts:
name: "khanat-client_static-debian_strech-$(echo $CI_BUILD_REF | head -c 7 )-$CI_PIPELINE_ID" name: "khanat-client_static-debian_strech-$CI_COMMIT_REF_NAME"
paths: paths:
- code/build/bin - code/build/bin
expire_in: 2 week expire_in: 2 week
# Fedora Client
Linux client fedora_amd64_27 build:
stage: build
tags:
- Docker
image: amd64/fedora:27
script:
# Prepare environment
- yum update -y
- yum install -y
autoconf
autogen
automake
bison
boost-devel
cmake
fakeroot
freetype-devel
gcc
gcc-c++
giflib-devel
libcurl-devel
libjpeg-turbo-devel
libogg-devel
libpng-devel
libssh2-devel
libtool
libvorbis-devel
libX11-devel
libxml2-devel
libXmu
libXrandr-devel
libXrender-devel
libXxf86vm-devel
luabind-devel
lua-devel
lzma-devel
make
mercurial
mesa-libGL-devel
openal-soft-devel
openssl-devel
patch
rrdtool
unzip
wget
xz
zlib-devel
# Action
- mkdir -p code/build
- (cd code; patch -i ../patch/libcrypto.patch)
- (cd code/build ; export -p CPPFLAGS="-Wno-deprecated -Wno-deprecated-declarations"; cmake -G "Unix Makefiles" -DWITH_NEL=ON -DWITH_LUA52=ON -DWITH_RYZOM_PATCH=OFF -DWITH_RYZOM_CUSTOM_PATCH_SERVER=OFF -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DWITH_NEL_SAMPLES=OFF -DWITH_SOUND=ON -DWITH_STATIC_CURL=OFF ..)
- (cd code/build; make khanat_client)
- (cd code/build/bin; ls -lh)
artifacts:
name: "khanat-client-fedora_27-$CI_COMMIT_REF_NAME"
paths:
- code/build/bin
expire_in: 2 week
# Ubuntu Client
Linux client ubuntu_amd64_17_10 build:
stage: build
tags:
- Docker
image: amd64/ubuntu:17.10
script:
# Prepare environment
- apt-get update
- apt-get dist-upgrade -y
- apt-get install -y autoconf
autogen
automake
bison
build-essential
cmake
cpputest
fakeroot
libboost-all-dev
libcurl4-openssl-dev
libfreetype6-dev
libgif-dev
libgl1-mesa-dev
libjpeg62-dev
liblzma-dev
libopenal-dev
libpng-dev
libssh2-1-dev
libssl-dev
libtool
libtool-bin
libx11-dev
libxml2-dev
libxmu-dev
libxrandr-dev
libxrender-dev
libxxf86vm-dev
mercurial
rrdtool
unzip
wget
zlib1g-dev
- apt-get install -y liblua5.2-0 liblua5.2-dev libluabind-dev libluabind0.9.1v5 libogg-dev libvorbis-dev
# Action
- mkdir -p code/build
- (cd code; patch -i ../patch/libcrypto.patch)
- (cd code/build ; export -p CPPFLAGS="-Wno-deprecated -Wno-deprecated-declarations"; cmake -G "Unix Makefiles" -DWITH_NEL=ON -DWITH_LUA52=ON -DWITH_RYZOM_PATCH=OFF -DWITH_RYZOM_CUSTOM_PATCH_SERVER=OFF -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DWITH_NEL_SAMPLES=OFF -DWITH_SOUND=ON -DWITH_STATIC_CURL=OFF ..)
- (cd code/build; make khanat_client)
- (cd code/build/bin; ls -lh)
artifacts:
name: "khanat-client-ubuntu_17_10-$(echo $CI_BUILD_REF | head -c 7 )-$CI_PIPELINE_ID"
paths:
- code/build/bin
expire_in: 2 week
# Archlinux Client
Linux client archlinux build:
stage: build
tags:
- Docker
image: base/archlinux
script:
# Prepare environment
- pacman -Suy --noconfirm
autoconf
autogen
automake
binutils
boost
boost-libs
cmake
fakeroot
gcc
giflib
git
glu
libjpeg-turbo
libogg
libpng
libssh
libtool
libvorbis
libx11
libxml2
libxmu
libxrandr
libxrender
libxxf86vm
lua
make
mesa
openal
openssl
patch
pkg-config
sed
unzip
wget
xorg-xfd
xz
zlib
> pacman.log
# Install Yaourt
# Disable check root (never do that on real server)
- sed -i 's/EUID == 0/EUID == 12345/g' /usr/sbin/makepkg
- mkdir -p build
- cd build
- git clone https://aur.archlinux.org/package-query.git
- cd package-query
- yes | makepkg -si || echo $?
- cd ..
- git clone https://aur.archlinux.org/yaourt.git
- cd yaourt
- yes | makepkg -si || echo $?
- cd ../..
- yaourt -Syyu --noconfirm --aur boost-build
# Build
- mkdir -p luabind
- wget -q http://http.debian.net/debian/pool/main/l/luabind/luabind_0.9.1+dfsg.orig.tar.gz -O luabind.tar.gz
- wget -q http://http.debian.net/debian/pool/main/l/luabind/luabind_0.9.1+dfsg-11.debian.tar.xz -O luabind-debian.tar.xz
- tar xvf luabind.tar.gz -C luabind --strip 1 || exit 2
- tar xvf luabind-debian.tar.xz -C luabind || exit 2
- cd luabind
- ls -l
- for file in $(cat debian/patches/series); do patch -p1 < debian/patches/$file; done
- export -p DEB_HOST_MULTIARCH="/"; bjam -d2 release debug install cxxflags="-fPIC -Wno-deprecated -Wno-deprecated-declarations"
- export -p DEB_HOST_MULTIARCH="/"; bjam -d2 release debug install link=static cxxflags="-fPIC -Wno-deprecated -Wno-deprecated-declarations"
- cd ..
# Action
- mkdir -p code/build
- (cd code; patch -i ../patch/libcrypto.patch)
- (cd code; patch -i ../patch/libicuuc.patch)
- (cd code/build ; export -p CPPFLAGS="-Wno-deprecated -Wno-deprecated-declarations"; cmake -G "Unix Makefiles" -DWITH_NEL=ON -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_STATIC_EXTERNAL=ON -DWITH_LUA52=ON -DWITH_RYZOM_PATCH=OFF -DWITH_RYZOM_CUSTOM_PATCH_SERVER=OFF -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DWITH_NEL_SAMPLES=OFF -DWITH_SOUND=ON -DWITH_STATIC_CURL=ON /opt/code ..)
- (cd code/build; make khanat_client)
- (cd code/build/bin; ls -lh)
artifacts:
name: "khanat-client-archlinux-$CI_COMMIT_REF_NAME"
paths:
- code/build/bin
expire_in: 2 week
# Gentoo Client
# Job de compilation pour OSX # Job de compilation pour OSX
OSX client build: OSX client build: