This repository has been archived by the owner on Jan 30, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy path.travis.yml
229 lines (214 loc) · 9.84 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
language: cpp
sudo: required
dist: trusty
# Disable builds on normal pushes, we only want to build tags
branches:
except:
- master
- 2.0
- 2.1
compiler:
- gcc
- clang
os:
- linux
- osx
env:
global:
# - BUILD_NAME=official
- BUILD_NAME=build1
- OPTIONS="builtin_libpng=yes builtin_openssl=yes builtin_zlib=yes"
- SCONS="scons -j2 verbose=yes warnings=no progress=no"
matrix:
- PLATFORM=iphone TARGET=release
- PLATFORM=iphone TARGET=release_debug
- PLATFORM=javascript WASM=no TARGET=release
- PLATFORM=javascript WASM=no TARGET=release_debug
- PLATFORM=javascript WASM=yes TARGET=release
- PLATFORM=javascript WASM=yes TARGET=release_debug
- PLATFORM=osx BITS=fat TOOLS=yes TARGET=release_debug
- PLATFORM=osx BITS=fat TOOLS=no TARGET=release
- PLATFORM=osx BITS=fat TOOLS=no TARGET=release_debug
# - PLATFORM=server BITS=64 TOOLS=yes TARGET=release_debug
- PLATFORM=x11 BITS=32 TOOLS=yes TARGET=release_debug
- PLATFORM=x11 BITS=32 TOOLS=no TARGET=release
- PLATFORM=x11 BITS=32 TOOLS=no TARGET=release_debug
- PLATFORM=x11 BITS=64 TOOLS=yes TARGET=release_debug
- PLATFORM=x11 BITS=64 TOOLS=no TARGET=release
- PLATFORM=x11 BITS=64 TOOLS=no TARGET=release_debug
- PLATFORM=android TARGET=release ANDROID_ARCH=armv7
- PLATFORM=android TARGET=release ANDROID_ARCH=x86
- PLATFORM=android TARGET=release_debug ANDROID_ARCH=armv7
- PLATFORM=android TARGET=release_debug ANDROID_ARCH=x86
matrix:
exclude:
- os: linux
env: PLATFORM=android TARGET=release ANDROID_ARCH=armv7
- os: linux
env: PLATFORM=android TARGET=release ANDROID_ARCH=x86
- os: linux
env: PLATFORM=android TARGET=release_debug ANDROID_ARCH=armv7
- os: linux
env: PLATFORM=android TARGET=release_debug ANDROID_ARCH=x86
- os: linux
env: PLATFORM=iphone TARGET=release
- os: linux
env: PLATFORM=iphone TARGET=release_debug
- os: linux
env: PLATFORM=javascript WASM=no TARGET=release
- os: linux
env: PLATFORM=javascript WASM=no TARGET=release_debug
- os: linux
env: PLATFORM=javascript WASM=yes TARGET=release
- os: linux
env: PLATFORM=javascript WASM=yes TARGET=release_debug
- os: linux
env: PLATFORM=osx BITS=fat TOOLS=yes TARGET=release_debug
- os: linux
env: PLATFORM=osx BITS=fat TOOLS=no TARGET=release
- os: linux
env: PLATFORM=osx BITS=fat TOOLS=no TARGET=release_debug
- os: osx
env: PLATFORM=server BITS=64 TOOLS=yes TARGET=release_debug
- os: osx
env: PLATFORM=x11 BITS=32 TOOLS=yes TARGET=release_debug
- os: osx
env: PLATFORM=x11 BITS=32 TOOLS=no TARGET=release
- os: osx
env: PLATFORM=x11 BITS=32 TOOLS=no TARGET=release_debug
- os: osx
env: PLATFORM=x11 BITS=64 TOOLS=yes TARGET=release_debug
- os: osx
env: PLATFORM=x11 BITS=64 TOOLS=no TARGET=release
- os: osx
env: PLATFORM=x11 BITS=64 TOOLS=no TARGET=release_debug
- compiler: gcc
env: PLATFORM=iphone TARGET=release
- compiler: gcc
env: PLATFORM=iphone TARGET=release_debug
- compiler: gcc
env: PLATFORM=javascript WASM=no TARGET=release
- compiler: gcc
env: PLATFORM=javascript WASM=no TARGET=release_debug
- compiler: gcc
env: PLATFORM=javascript WASM=yes TARGET=release
- compiler: gcc
env: PLATFORM=javascript WASM=yes TARGET=release_debug
- compiler: gcc
env: PLATFORM=osx BITS=fat TOOLS=yes TARGET=release_debug
- compiler: gcc
env: PLATFORM=osx BITS=fat TOOLS=no TARGET=release
- compiler: gcc
env: PLATFORM=osx BITS=fat TOOLS=no TARGET=release_debug
- compiler: clang
env: PLATFORM=android TARGET=release ANDROID_ARCH=armv7
- compiler: clang
env: PLATFORM=android TARGET=release ANDROID_ARCH=x86
- compiler: clang
env: PLATFORM=android TARGET=release_debug ANDROID_ARCH=armv7
- compiler: clang
env: PLATFORM=android TARGET=release_debug ANDROID_ARCH=x86
- compiler: clang
env: PLATFORM=server BITS=64 TOOLS=yes TARGET=release_debug
- compiler: clang
env: PLATFORM=x11 BITS=32 TOOLS=yes TARGET=release_debug
- compiler: clang
env: PLATFORM=x11 BITS=32 TOOLS=no TARGET=release
- compiler: clang
env: PLATFORM=x11 BITS=32 TOOLS=no TARGET=release_debug
- compiler: clang
env: PLATFORM=x11 BITS=64 TOOLS=yes TARGET=release_debug
- compiler: clang
env: PLATFORM=x11 BITS=64 TOOLS=no TARGET=release
- compiler: clang
env: PLATFORM=x11 BITS=64 TOOLS=no TARGET=release_debug
before_script:
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get update -qq; sudo apt-get install -y scons pkg-config build-essential; fi;
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew update; brew install scons; fi;
- if [ "$TRAVIS_OS_NAME" = "osx" ] && [ "$PLATFORM" = "android" ]; then
brew tap caskroom/cask; brew cask install android-sdk;
export ANDROID_HOME=/usr/local/share/android-sdk;
wget https://dl.google.com/android/repository/android-ndk-r14b-darwin-x86_64.zip;
unzip -d $HOME android-ndk-r14b-darwin-x86_64.zip | grep -v "inflating:" | grep -v "creating:";
export ANDROID_NDK_ROOT="$HOME/android-ndk-r14b";
fi;
- if [ "$PLATFORM" = "x11" ] || [ "$PLATFORM" = "server" ]; then
sudo rm -f /etc/apt/sources.list.d/*.list;
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; sudo apt-get update -qq;
sudo apt-get install -y gcc-7 g++-7;
if [ "$BITS" = "64" ]; then
sudo apt-get install -y libx11-dev libxcursor-dev libxrandr-dev libasound2-dev libpulse-dev libfreetype6-dev libgl1-mesa-dev libglu1-mesa-dev libxinerama-dev;
else
sudo dpkg --add-architecture i386; sudo apt-get update -qq;
sudo apt-get install -y gcc-7-multilib g++-7-multilib pkg-config:i386 libx11-dev:i386 libxcursor-dev:i386 libxrandr-dev:i386 libglib2.0-dev:i386 libasound2-dev:i386 libpulse-dev:i386 libpng-dev:i386 libfreetype6-dev:i386 libgl1-mesa-dev:i386 libglu1-mesa-dev:i386 libxinerama-dev:i386;
fi;
fi;
- if [ "$PLATFORM" = "javascript" ]; then
brew install llvm;
cd $HOME;
wget https://s3.amazonaws.com/mozilla-games/emscripten/releases/emsdk-portable.tar.gz;
tar -xzf emsdk-portable.tar.gz;
cd emsdk-portable; ./emsdk update; ./emsdk install latest; ./emsdk activate latest;
rm clang/e*/llvm-ar; ln -s /usr/local/opt/llvm/bin/llvm-ar clang/e*/;
source ./emsdk_env.sh;
cd $TRAVIS_BUILD_DIR;
export EMSCRIPTEN_ROOT=`em-config EMSCRIPTEN_ROOT`;
fi;
script:
- cd godot; for patch in $(find ../patches -type f); do git apply $patch; done;
- git rev-parse HEAD;
- if [ "$PLATFORM" = "osx" ]; then
$SCONS platform=$PLATFORM CXX=$CXX $OPTIONS tools=$TOOLS bits=$BITS target=$TARGET;
fi;
- if [ "$PLATFORM" = "x11" -o "$PLATFORM" = "server" ]; then
export CC="gcc-7"; export CXX="g++-7";
while true; do echo "Still building, don't timeout!"; sleep 60; done & export TIMEOUT_HACK_PID=$!;
if [ "$BITS" = "32" ] && [ "$TOOLS" = "no" ] && [ "$TARGET" = "release" ]; then
$SCONS platform=$PLATFORM CC=$CC CXX=$CXX $OPTIONS tools=$TOOLS bits=$BITS target=$TARGET use_static_cpp=yes;
else
$SCONS platform=$PLATFORM CC=$CC CXX=$CXX $OPTIONS tools=$TOOLS bits=$BITS target=$TARGET use_lto=yes use_static_cpp=yes;
fi;
fi;
- if [ ! -z "$TIMEOUT_HACK_PID" ]; then
kill -9 $TIMEOUT_HACK_PID;
fi;
- if [ "$PLATFORM" = "android" ]; then
$SCONS platform=$PLATFORM CXX=$CXX $OPTIONS target=$TARGET android_arch=$ANDROID_ARCH;
fi;
- if [ "$PLATFORM" = "iphone" ]; then
$SCONS platform=$PLATFORM CXX=$CXX $OPTIONS arch=arm target=$TARGET;
$SCONS platform=$PLATFORM CXX=$CXX $OPTIONS arch=arm64 target=$TARGET;
fi;
- if [ "$PLATFORM" = "javascript" ]; then
$SCONS platform=$PLATFORM wasm=$WASM CXX=$CXX $OPTIONS target=$TARGET;
fi;
before_deploy:
- if [ "$PLATFORM" = "iphone" ]; then
if [ "$TARGET" = "release" ]; then target_tag="opt"; else target_tag="opt.debug"; fi;
lipo -create -arch armv7 bin/godot.iphone.$target_tag.arm -arch arm64 bin/godot.iphone.$target_tag.arm64 -output bin/godot.iphone.$target_tag.universal;
rm -rf bin/godot.iphone.$target_tag.arm*;
fi;
- if [ "$PLATFORM" = "javascript" ]; then
if [ "$TARGET" = "release" ]; then target_tag="opt"; else target_tag="opt.debug"; fi;
if [ "$WASM" = "yes" ]; then target_tag=$target_tag+".webassembly"; fi;
rm -f bin/godot.javascript.$target_tag.wasm;
rm -f bin/godot.javascript.$target_tag.asm.js;
rm -f bin/godot.javascript.$target_tag.js;
rm -f bin/godot.javascript.$target_tag*.html;
fi;
- if [ "$PLATFORM" = "android" ]; then
if [ "$TARGET" = "release" ]; then target_tag="release"; else target_tag="debug"; fi;
if [ "$ANDROID_ARCH" = "armv7" ]; then android_arch="armeabi-v7a"; else android_arch="x86"; fi;
cp platform/android/java/libs/$target_tag/$android_arch/libgodot_android.so bin/libgodot.android.opt.$target_tag.$android_arch.so;
fi;
deploy:
provider: releases
api_key:
secure: tCFCHet6fgtf1+sgQEft4XTIfNH2JrqRx+YaatEfEEVNkHbY3SnRdtvcZeTeHc1LNpf6S0eU45RkBHeyN1Gna80Yiz8uep7rFuUTp5XtZsRfNecw/ebhPlyOEf3AhCVBJ3e3RxT2V1i/+8HyaWBisbXMZ1R+w07M3BxQrTpJflb7iSIXYTF//BxBtC1Atp7egDoU97OJfLSPEhPbjGhMoUuLTe7wmZqd7zK3DNTatL/pXefLN67N15dOra0LNgBHo1o6P4wcVBT2V+o9/TK5RAyUi5TqoudETgq2pBdAE558OuBbHh1dwDrs9b9ZbUC0mLautadiSbCkU0nLmYapaCKGr4+DpnZCxZYgzcYb5UPb6u6Rs3pY11JFtPYIXR2C1UJh4rpBIQa+F/eBKnw+QztnjfYWxJYq2T73CuFLgku89x99cVq7EiP0g/lZp64HxyENOcyL0FlWwjmq2vnr8BKNhDEVAXIUB1JsH8VshvndlgLhaRyRe+rkXnikLX8Nm6Z9V4pCjnRuCgiwZtYjxMTBhk30ZtXUg4uzCVmbvbUql8PPNrWDeq9yoUVe55kqU6DsxM1CEIou7Qcua2eeXcUkOGCgpXH4W0NXWBFo7Ze7FWHeKSHAcBeUrUpbiY75fcFdVjY/uUJaXQpem64Xm0O8GxK67CsBqAJahD1hxjc=
file_glob: true
file:
- bin/*godot*.$PLATFORM.opt.*
skip_cleanup: true
on:
repo: GodotBuilder/godot-builds
tags: true