forked from CorsixTH/CorsixTH
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.travis.yml
103 lines (103 loc) · 6.69 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
language: cpp
before_install:
# Get build dependencies
- sudo apt-get -qq update
- sudo apt-get -q install cmake p7zip-full build-essential sshpass lua5.1 luarocks
# These are requred for LDocGen
- sudo luarocks install lpeg
- sudo luarocks install luafilesystem
# Install the mingw-w64 packages.
- sudo apt-get -q install g++-mingw-w64 gcc-mingw-w64 g++-mingw-w64-i686 gcc-mingw-w64-i686 gcc-mingw-w64-i686 g++-mingw-w64-i686 binutils-mingw-w64-i686 g++-mingw-w64-x86-64 gcc-mingw-w64-x86-64 binutils-mingw-w64-x86-64
# The packages in ubuntu's repositories seem a little broken
# so use a bleeding edge version
- wget http://ftp.jp.debian.org/debian/pool/main/m/mingw-w64/mingw-w64_3.2.0-2_all.deb
- sudo dpkg -i mingw-w64_3.2.0-2_all.deb
- mkdir libs
- cd libs
# Get FFmpeg
- wget http://ffmpeg.zeranoe.com/builds/win32/dev/ffmpeg-2.1.4-win32-dev.7z
- wget http://ffmpeg.zeranoe.com/builds/win32/shared/ffmpeg-2.1.4-win32-shared.7z
- /usr/bin/7za x ffmpeg-2.1.4-win32-dev.7z
- /usr/bin/7za x ffmpeg-2.1.4-win32-shared.7z
- mv ffmpeg-2.1.4-win32-dev ffmpeg-dev
- mv ffmpeg-2.1.4-win32-shared ffmpeg-bin
# Get freetype
- wget http://mirror.ufs.ac.za/gnuwin32/freetype/2.3.5-1/freetype-2.3.5-1-lib.zip
- wget http://mirror.ufs.ac.za/gnuwin32/freetype/2.3.5-1/freetype-2.3.5-1-bin.zip
- wget http://mirror.ufs.ac.za/gnuwin32/freetype/2.3.5-1/freetype-2.3.5-1-dep.zip
- unzip -n freetype-2.3.5-1-lib.zip -d freetype
- unzip -n freetype-2.3.5-1-bin.zip -d freetype
- unzip -n freetype-2.3.5-1-dep.zip -d freetype
# Get SDL
- wget http://libsdl.org/release/SDL2-devel-2.0.3-mingw.tar.gz
- wget https://hg.libsdl.org/SDL/raw-diff/e217ed463f25/include/SDL_platform.h
- tar xfz SDL2-devel-2.0.3-mingw.tar.gz
- patch -p2 -d SDL2-2.0.3/i686-w64-mingw32/include/SDL2 < SDL_platform.h
- sudo mkdir /usr/i686-w64-mingw32/bin/
- sudo cp SDL2-2.0.3/i686-w64-mingw32/bin/* /usr/i686-w64-mingw32/bin/
- sudo cp -r SDL2-2.0.3/i686-w64-mingw32/include/SDL2/* /usr/i686-w64-mingw32/include/
- sudo cp -r SDL2-2.0.3/i686-w64-mingw32/lib/* /usr/i686-w64-mingw32/lib/
- sudo chmod +x /usr/i686-w64-mingw32/bin/sdl2-config
# Get SDL Mixer
- wget http://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-devel-2.0.0-mingw.tar.gz
- tar xfz SDL2_mixer-devel-2.0.0-mingw.tar.gz
- sudo cp -r SDL2_mixer-2.0.0/i686-w64-mingw32/include/SDL2/* /usr/i686-w64-mingw32/include/
- sudo cp -r SDL2_mixer-2.0.0/i686-w64-mingw32/lib/* /usr/i686-w64-mingw32/lib/
- mkdir lua
# Get LUA
- wget http://skylink.dl.sourceforge.net/project/mingw/MinGW/Extension/lua/lua-5.1.4-4/lua-5.1.4-4-mingw32-dll-51.tar.xz
- tar xJf lua-5.1.4-4-mingw32-dll-51.tar.xz -C lua
- wget http://netcologne.dl.sourceforge.net/project/mingw/MinGW/Extension/lua/lua-5.1.4-4/lua-5.1.4-4-mingw32-dev.tar.xz
- tar xJf lua-5.1.4-4-mingw32-dev.tar.xz -C lua
- mkdir $TRAVIS_BUILD_DIR/LevelEdit/bin
install:
- cd $TRAVIS_BUILD_DIR
# Create unix makefiles
- cmake -DCMAKE_TOOLCHAIN_FILE=build_files/toolchain-mingw.cmake -DWITH_AUDIO=ON -DWITH_MOVIES=ON -DSDL_LIBRARY=$TRAVIS_BUILD_DIR/libs/SDL2-2.0.3/i686-w64-mingw32/lib/libSDL2.dll.a -DSDL_INCLUDE_DIR=libs/SDL2-2.0.3/i686-w64-mingw32/include/SDL2 -DSDLMAIN_LIBRARY=libs/SDL2-2.0.3/i686-w64-mingw32/lib/libSDL2main.a -DSDLMIXER_INCLUDE_DIR=$TRAVIS_BUILD_DIR/libs/SDL2_mixer-2.0.0/i686-w64-mingw32/include/SDL2 -DSDLMIXER_LIBRARY=$TRAVIS_BUILD_DIR/libs/SDL2_mixer-2.0.0/i686-w64-mingw32/lib/libSDL2_mixer.dll.a -DLUA_LIBRARY=libs/lua/lib/liblua.dll.a -DLUA_INCLUDE_DIR=libs/lua/include -DFREETYPE_INCLUDE_DIR_freetype2=libs/freetype/include/freetype2 -DFREETYPE_INCLUDE_DIR_ft2build=libs/freetype/include -DFREETYPE_LIBRARY=libs/freetype/lib/libfreetype.dll.a -DFFMPEG_INCLUDE_DIRS=libs/ffmpeg-dev/include -DAVFORMAT_INCLUDE_DIRS=libs/ffmpeg-dev/include -DAVUTIL_INCLUDE_DIRS=libs/ffmpeg-dev/include -DSWSCALE_INCLUDE_DIRS=libs/ffmpeg-dev/include -DAVCODEC_INCLUDE_DIRS=libs/ffmpeg-dev/include -DSWRESAMPLE_INCLUDE_DIRS=libs/ffmpeg-dev/include -DAVFORMAT_LIBRARIES=libs/ffmpeg-dev/lib/avformat.lib -DAVCODEC_LIBRARIES=libs/ffmpeg-dev/lib/avcodec.lib -DAVUTIL_LIBRARIES=libs/ffmpeg-dev/lib/avutil.lib -DSWSCALE_LIBRARIES=libs/ffmpeg-dev/lib/swscale.lib -DSWRESAMPLE_LIBRARIES=libs/ffmpeg-dev/lib/swresample.lib -Bfresh -H. --debug-output
before_script:
# Don't ask for confirmation when using scp
- echo -e "Host armedpineapple.co.uk\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
- echo -e "Host server2.armedpineapple.co.uk\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
- cd fresh
script:
# Check if there are trailing whitespaces.
- ${TRAVIS_BUILD_DIR}/scripts/check_trailing_whitespaces.py $TRAVIS_BUILD_DIR
# Check for incorrectly encoded language files.
- python ${TRAVIS_BUILD_DIR}/scripts/check_language_files_not_BOM.py $TRAVIS_BUILD_DIR/CorsixTH/Lua/languages
# Check if there are lua classes with invalid/improper declarations.
- python ${TRAVIS_BUILD_DIR}/scripts/check_lua_classes.py
# Build CorsixTH
- make
# Validate lua files
- (LUA_FAILURE=0; for file in `find CorsixTH -name '*.lua' -not -path "CorsixTH/Lua/languages/*"`; do luac -p $file; if [ $? != 0 ]; then LUA_FAILURE=1; fi; done; exit $LUA_FAILURE)
# Build LevelEdit
- cd $TRAVIS_BUILD_DIR/LevelEdit && ant dist
# Build documentation
- cd $TRAVIS_BUILD_DIR/LDocGen && lua main.lua
after_success:
- mkdir -p $TRAVIS_BUILD_DIR/fresh/CorsixTH
- cd $TRAVIS_BUILD_DIR
# Package LevelEdit
- cp LevelEdit/dist/LevelEdit.jar fresh/CorsixTH/
# Copy required DLLs
- cp libs/SDL2-2.0.3/i686-w64-mingw32/bin/*.dll fresh/CorsixTH/
- cp libs/SDL2_mixer-2.0.0/i686-w64-mingw32/bin/*.dll fresh/CorsixTH/
- cp libs/ffmpeg-bin/bin/*.dll fresh/CorsixTH/
- cp libs/freetype/bin/*.dll fresh/CorsixTH/
- cp libs/lua/bin/*.dll fresh/CorsixTH/
# Copy CTH
- cd CorsixTH/
- cp -r * ../fresh/CorsixTH/
- cd ../fresh/CorsixTH
# Prepare ZIP archive
- ZIPNAME=CTH-`date +"%Y%m%d"`-$TRAVIS_BRANCH-${TRAVIS_COMMIT:0:10}.zip
- if [ $TRAVIS_PULL_REQUEST != "false" ]; then ZIPNAME=CTH-pull-$TRAVIS_PULL_REQUEST-`date +"%Y%m%d"`-${TRAVIS_COMMIT:0:10}.zip; fi;
- zip -r $ZIPNAME *
- chmod 666 $ZIPNAME
# Upload to server
- if [ $TRAVIS_REPO_SLUG == "CorsixTH/CorsixTH" ]; then sshpass -p "$SCP_PASS" scp -v -P12349 $ZIPNAME [email protected]:/home/cthbuilder/builds/; fi;
# Upload new docs
- if [ $TRAVIS_REPO_SLUG == "CorsixTH/CorsixTH" -a $TRAVIS_BRANCH == "master" ]; then sshpass -p "$SCP_PASS" scp -v -P12349 $TRAVIS_BUILD_DIR/LDocGen/output/* [email protected]:/home/cthbuilder/docs/; fi;
env:
global:
secure: "mPtzSeDJKVeUu6KHJEbmHa91O+QK2XM0advYdr+13yr83w3C7cGFFjWgqzirsFUHVqPgdtSJIkom0DIxX7JtRoBZmt/xon+zfLq+Q4aSkJoYezWBqp2gavS8o1kSjtW7XuIuq995yjWvn7nehyoTYkKNtz/EzX5ZIVZ/iX73iyo="