adding build client on archlinux

This commit is contained in:
AleaJactaEst 2018-03-21 22:38:27 +01:00
parent 9ccff24a1f
commit eec73c1802

View file

@ -1,8 +1,27 @@
# 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 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'
stages: stages:
- build - build
- test - test
@ -120,7 +139,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
@ -285,11 +304,101 @@ 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
# Centos Client
# Ubuntu Client
# Archlinux Client
Linux client archlinux build:
stage: build
tags:
- Docker
image: base/archlinux
script:
# Prepare environment
- pacman -Suy --noconfirm libx11 mesa glu
libxxf86vm
libxrandr
libxrender
openal
libxml2
cmake
gcc
make
libpng
libjpeg-turbo
libxmu
autoconf
automake
giflib
openssl
xz
unzip
zlib
libssh
boost
boost-libs
openal
wget
autogen
libtool
fakeroot
lua
libogg
libvorbis
patch
xorg-xfd
sed binutils git gcc pkg-config make fakeroot
# 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 cflags="-fPIC" cxxflags="-fPIC"
- export -p DEB_HOST_MULTIARCH="/"; bjam -d2 release debug install link=static cflags="-fPIC" cxxflags="-fPIC"
- cd ..
# Action
- mkdir -p code/build
- (cd code; patch -i ../patch/libcrypto.patch)
- (cd code; patch -i ../patch/libicuuc.patch)
- (cd code/build ; cmake -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 ..)
- (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: