Emit liquid sound if the player walks in liquid (#6040)
[oweals/minetest.git] / .gitlab-ci.yml
1 ---
2 # Github repository is cloned every day on Gitlab.com
3 # https://gitlab.com/minetest/minetest
4 # Pipelines URL: https://gitlab.com/minetest/minetest/pipelines
5
6 stages:
7   - build
8   - package
9   - deploy
10
11 variables:
12   MINETEST_GAME_REPO: "https://github.com/minetest/minetest_game.git"
13
14 .build_template: &build_definition
15   stage: build
16   script:
17     - mkdir cmakebuild
18     - mkdir -p artifact/minetest/usr/
19     - cd cmakebuild
20     - cmake -DCMAKE_INSTALL_PREFIX=../artifact/minetest/usr/ -DCMAKE_BUILD_TYPE=Release -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE -DBUILD_SERVER=TRUE ..
21     - make -j2
22     - make install
23   artifacts:
24     when: on_success
25     expire_in: 2h
26     paths:
27       - artifact/*
28
29 .debpkg_template: &debpkg_template
30   stage: package
31   before_script:
32     - apt-get update -y
33     - apt-get install -y git
34     - mkdir -p build/deb/minetest/DEBIAN/
35     - cp misc/debpkg-control build/deb/minetest/DEBIAN/control
36     - cp -Rp artifact/minetest/usr build/deb/minetest/
37   script:
38     - git clone $MINETEST_GAME_REPO build/deb/minetest/usr/share/minetest/games/minetest
39     - rm -Rf build/deb/minetest/usr/share/minetest/games/minetest/.git
40     - sed -i 's/DATEPLACEHOLDER/'$(date +%y.%m.%d)'/g' build/deb/minetest/DEBIAN/control
41     - sed -i 's/LEVELDB_PLACEHOLDER/'$LEVELDB_PKG'/g' build/deb/minetest/DEBIAN/control
42     - cd build/deb/ && dpkg-deb -b minetest/ && mv minetest.deb ../../
43   artifacts:
44     when: on_success
45     expire_in: 90 day
46     paths:
47       - ./*.deb
48
49 .debpkg_install: &debpkg_install
50   stage: deploy
51   before_script:
52     - apt-get update -y
53     - apt-get install -y libc6 libcurl3-gnutls libfreetype6 libirrlicht1.8 $LEVELDB_PKG liblua5.1-0 libluajit-5.1-2 libopenal1 libstdc++6 libvorbisfile3 libx11-6 zlib1g
54   script:
55     - dpkg -i ./*.deb
56
57 ##
58 ## Debian
59 ##
60
61 # Jessie
62
63 build:debian-8:
64   <<: *build_definition
65   image: debian:8
66   before_script:
67     - echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main" > /etc/apt/sources.list.d/uptodate-toolchain.list
68     - apt-key adv --keyserver keyserver.ubuntu.com --recv BA9EF27F
69     - apt-get update -y
70     - apt-get -y install build-essential gcc-6 g++-6 libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
71   variables:
72     CC: gcc-6
73     CXX: g++-6
74
75 package:debian-8:
76   image: debian:8
77   dependencies:
78     - build:debian-8
79   variables:
80     LEVELDB_PKG: libleveldb1
81   <<: *debpkg_template
82
83 deploy:debian-8:
84   image: debian:8
85   dependencies:
86     - package:debian-8
87   variables:
88     LEVELDB_PKG: libleveldb1
89   <<: *debpkg_install
90
91 # Stretch
92
93 build:debian-9:
94  <<: *build_definition
95  image: debian:9
96  before_script:
97    - apt-get update -y
98    - apt-get -y install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
99
100 package:debian-9:
101   image: debian:9
102   dependencies:
103     - build:debian-9
104   variables:
105     LEVELDB_PKG: libleveldb1v5
106   <<: *debpkg_template
107
108 deploy:debian-9:
109   image: debian:9
110   dependencies:
111     - package:debian-9
112   variables:
113     LEVELDB_PKG: libleveldb1v5
114   <<: *debpkg_install
115
116 ##
117 ## Ubuntu
118 ##
119
120 # Trusty
121
122 build:ubuntu-14.04:
123   <<: *build_definition
124   image: ubuntu:trusty
125   before_script:
126     - echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main" > /etc/apt/sources.list.d/uptodate-toolchain.list
127     - apt-key adv --keyserver keyserver.ubuntu.com --recv BA9EF27F
128     - apt-get update -y
129     - apt-get -y install build-essential gcc-6 g++-6 libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
130   variables:
131     CC: gcc-6
132     CXX: g++-6
133
134 package:ubuntu-14.04:
135   image: ubuntu:trusty
136   dependencies:
137     - build:ubuntu-14.04
138   variables:
139     LEVELDB_PKG: libleveldb1
140   <<: *debpkg_template
141
142 deploy:ubuntu-14.04:
143   image: ubuntu:trusty
144   dependencies:
145     - package:ubuntu-14.04
146   variables:
147     LEVELDB_PKG: libleveldb1
148   <<: *debpkg_install
149
150 # Xenial
151
152 build:ubuntu-16.04:
153   <<: *build_definition
154   image: ubuntu:xenial
155   before_script:
156     - apt-get update -y
157     - apt-get -y install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
158
159 package:ubuntu-16.04:
160   image: ubuntu:xenial
161   dependencies:
162     - build:ubuntu-16.04
163   variables:
164     LEVELDB_PKG: libleveldb1v5
165   <<: *debpkg_template
166
167 deploy:ubuntu-16.04:
168   image: ubuntu:xenial
169   dependencies:
170     - package:ubuntu-16.04
171   variables:
172     LEVELDB_PKG: libleveldb1v5
173   <<: *debpkg_install
174
175 # Yakkety
176
177 build:ubuntu-16.10:
178   <<: *build_definition
179   image: ubuntu:yakkety
180   before_script:
181     - apt-get update -y
182     - apt-get -y install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
183
184 package:ubuntu-16.10:
185   image: ubuntu:yakkety
186   dependencies:
187     - build:ubuntu-16.10
188   variables:
189     LEVELDB_PKG: libleveldb1v5
190   <<: *debpkg_template
191
192 deploy:ubuntu-16.10:
193   image: ubuntu:yakkety
194   dependencies:
195     - package:ubuntu-16.10
196   variables:
197     LEVELDB_PKG: libleveldb1v5
198   <<: *debpkg_install
199
200 # Zesty
201
202 build:ubuntu-17.04:
203   <<: *build_definition
204   image: ubuntu:zesty
205   before_script:
206     - apt-get update -y
207     - apt-get -y install build-essential libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev
208
209 package:ubuntu-17.04:
210   image: ubuntu:zesty
211   dependencies:
212     - build:ubuntu-17.04
213   variables:
214     LEVELDB_PKG: libleveldb1v5
215   <<: *debpkg_template
216
217 deploy:ubuntu-17.04:
218   image: ubuntu:zesty
219   dependencies:
220     - package:ubuntu-17.04
221   variables:
222     LEVELDB_PKG: libleveldb1v5
223   <<: *debpkg_install
224
225 ##
226 ## Fedora
227 ##
228
229 build:fedora-24:
230   <<: *build_definition
231   image: fedora:24
232   before_script:
233     - dnf -y install make automake gcc gcc-c++ kernel-devel cmake libcurl* openal* libvorbis* libXxf86vm-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel irrlicht-devel bzip2-libs gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel doxygen spatialindex-devel bzip2-devel
234
235
236 ##
237 ## Mingw for Windows
238 ##
239
240 .generic_win_template: &generic_win_template
241   image: ubuntu:xenial
242   before_script:
243     - apt-get update -y
244     - apt-get install -y p7zip-full wget unzip git cmake gettext
245     - wget http://minetest.kitsunemimi.pw/mingw-w64-${WIN_ARCH}_7.1.1_ubuntu14.04.7z -O mingw.7z > /dev/null
246     - sed -e "s|%PREFIX%|${WIN_ARCH}-w64-mingw32|" -e "s|%ROOTPATH%|/usr/${WIN_ARCH}-w64-mingw32|" < util/travis/toolchain_mingw.cmake.in > ${TOOLCHAIN_OUTPUT}
247     - 7z x -y -o/usr mingw.7z > /dev/null
248
249 .build_win_template: &build_win_template
250   <<: *generic_win_template
251   stage: build
252   artifacts:
253     when: on_success
254     expire_in: 2h
255     paths:
256       - build/*
257
258 .package_win_template: &package_win_template
259   <<: *generic_win_template
260   stage: package
261   script:
262     - cd build/minetest/_build
263     - make package
264     - cd ../../../
265     - mkdir minetest-win-${WIN_ARCH}
266     - unzip build/minetest/_build/minetest-*-win*.zip -d minetest-win-${WIN_ARCH}
267     - cp /usr/${WIN_ARCH}-w64-mingw32/bin/libgcc*.dll minetest-win-${WIN_ARCH}/minetest-*-win*/bin
268     - cp /usr/${WIN_ARCH}-w64-mingw32/bin/libstdc++*.dll minetest-win-${WIN_ARCH}/minetest-*-win*/bin
269     - cp /usr/${WIN_ARCH}-w64-mingw32/bin/libwinpthread*.dll minetest-win-${WIN_ARCH}/minetest-*-win*/bin
270   artifacts:
271     when: on_success
272     expire_in: 90 day
273     paths:
274       - minetest-win-*/*
275
276 build:win32:
277   <<: *build_win_template
278   script:
279     - ./util/buildbot/buildwin32.sh build
280   variables:
281     NO_PACKAGE: "1"
282     WIN_ARCH: "i686"
283     TOOLCHAIN_OUTPUT: "util/buildbot/toolchain_mingw.cmake"
284
285 package:win32:
286   <<: *package_win_template
287   dependencies:
288     - build:win32
289   variables:
290     NO_PACKAGE: "1"
291     WIN_ARCH: "i686"
292     TOOLCHAIN_OUTPUT: "util/buildbot/toolchain_mingw.cmake"
293
294 build:win64:
295   <<: *build_win_template
296   script:
297     - ./util/buildbot/buildwin64.sh build
298   variables:
299     NO_PACKAGE: "1"
300     WIN_ARCH: "x86_64"
301     TOOLCHAIN_OUTPUT: "util/buildbot/toolchain_mingw64.cmake"
302
303 package:win64:
304   <<: *package_win_template
305   dependencies:
306     - build:win64
307   variables:
308     NO_PACKAGE: "1"
309     WIN_ARCH: "x86_64"
310     TOOLCHAIN_OUTPUT: "util/buildbot/toolchain_mingw64.cmake"