aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOscar Lim <olim@ucla.edu>2016-05-07 13:28:29 -0700
committerOscar Lim <olim@ucla.edu>2016-05-07 13:34:03 -0700
commit61067b665311b5ae6efc56e4df90e5b348a73814 (patch)
treee451cc57a766ec7e1357fcac83f3aebb4dd43811
parent67e5f4ff685bee3fa381db6f50be3506ad0b5e76 (diff)
downloadluasystem-61067b665311b5ae6efc56e4df90e5b348a73814.tar.gz
luasystem-61067b665311b5ae6efc56e4df90e5b348a73814.tar.bz2
luasystem-61067b665311b5ae6efc56e4df90e5b348a73814.zip
New travis infrastructure
Changes the travis setup and drop `sudo` in favor of the faster container-based travis infrastructure.
-rw-r--r--.travis.yml19
-rw-r--r--.travis/platform.sh15
-rw-r--r--.travis/setenv_lua.sh3
-rw-r--r--.travis/setup_lua.sh122
-rw-r--r--.travis_setup.sh45
5 files changed, 152 insertions, 52 deletions
diff --git a/.travis.yml b/.travis.yml
index acfaa21..129680d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,17 +1,22 @@
1language: c 1language: c
2 2
3env: 3env:
4 - LUA='Lua 5.1' 4 global:
5 - LUA='Lua 5.2' 5 - LUAROCKS=2.3.0
6 - LUA='Lua 5.3' 6 matrix:
7 - LUA='LuaJIT 2.0' 7 - LUA=lua5.1
8 - LUA=lua5.2
9 - LUA=lua5.3
10 - LUA=luajit
11 - LUA=luajit2.0
12 - LUA=luajit2.1
8 13
9before_install: 14before_install:
10 - bash .travis_setup.sh 15 - source .travis/setenv_lua.sh
11 16
12install: 17install:
13 - sudo luarocks install busted 18 - luarocks install busted
14 - sudo luarocks make luasystem-scm-0.rockspec 19 - luarocks make luasystem-scm-0.rockspec
15 20
16script: busted spec 21script: busted spec
17 22
diff --git a/.travis/platform.sh b/.travis/platform.sh
new file mode 100644
index 0000000..7259a7d
--- /dev/null
+++ b/.travis/platform.sh
@@ -0,0 +1,15 @@
1if [ -z "${PLATFORM:-}" ]; then
2 PLATFORM=$TRAVIS_OS_NAME;
3fi
4
5if [ "$PLATFORM" == "osx" ]; then
6 PLATFORM="macosx";
7fi
8
9if [ -z "$PLATFORM" ]; then
10 if [ "$(uname)" == "Linux" ]; then
11 PLATFORM="linux";
12 else
13 PLATFORM="macosx";
14 fi;
15fi
diff --git a/.travis/setenv_lua.sh b/.travis/setenv_lua.sh
new file mode 100644
index 0000000..8d8c825
--- /dev/null
+++ b/.travis/setenv_lua.sh
@@ -0,0 +1,3 @@
1export PATH=${PATH}:$HOME/.lua:$HOME/.local/bin:${TRAVIS_BUILD_DIR}/install/luarocks/bin
2bash .travis/setup_lua.sh
3eval `$HOME/.lua/luarocks path`
diff --git a/.travis/setup_lua.sh b/.travis/setup_lua.sh
new file mode 100644
index 0000000..6dcc0c6
--- /dev/null
+++ b/.travis/setup_lua.sh
@@ -0,0 +1,122 @@
1#! /bin/bash
2
3# A script for setting up environment for travis-ci testing.
4# Sets up Lua and Luarocks.
5# LUA must be "lua5.1", "lua5.2" or "luajit".
6# luajit2.0 - master v2.0
7# luajit2.1 - master v2.1
8
9set -eufo pipefail
10
11LUAJIT_VERSION="2.0.4"
12LUAJIT_BASE="LuaJIT-$LUAJIT_VERSION"
13
14source .travis/platform.sh
15
16LUA_HOME_DIR=$TRAVIS_BUILD_DIR/install/lua
17
18LR_HOME_DIR=$TRAVIS_BUILD_DIR/install/luarocks
19
20mkdir $HOME/.lua
21
22LUAJIT="no"
23
24if [ "$PLATFORM" == "macosx" ]; then
25 if [ "$LUA" == "luajit" ]; then
26 LUAJIT="yes";
27 fi
28 if [ "$LUA" == "luajit2.0" ]; then
29 LUAJIT="yes";
30 fi
31 if [ "$LUA" == "luajit2.1" ]; then
32 LUAJIT="yes";
33 fi;
34elif [ "$(expr substr $LUA 1 6)" == "luajit" ]; then
35 LUAJIT="yes";
36fi
37
38mkdir -p "$LUA_HOME_DIR"
39
40if [ "$LUAJIT" == "yes" ]; then
41
42 if [ "$LUA" == "luajit" ]; then
43 curl --location https://github.com/LuaJIT/LuaJIT/archive/v$LUAJIT_VERSION.tar.gz | tar xz;
44 else
45 git clone https://github.com/LuaJIT/LuaJIT.git $LUAJIT_BASE;
46 fi
47
48 cd $LUAJIT_BASE
49
50 if [ "$LUA" == "luajit2.1" ]; then
51 git checkout v2.1;
52 # force the INSTALL_TNAME to be luajit
53 perl -i -pe 's/INSTALL_TNAME=.+/INSTALL_TNAME= luajit/' Makefile
54 fi
55
56 make && make install PREFIX="$LUA_HOME_DIR"
57
58 ln -s $LUA_HOME_DIR/bin/luajit $HOME/.lua/luajit
59 ln -s $LUA_HOME_DIR/bin/luajit $HOME/.lua/lua;
60
61else
62
63 if [ "$LUA" == "lua5.1" ]; then
64 curl http://www.lua.org/ftp/lua-5.1.5.tar.gz | tar xz
65 cd lua-5.1.5;
66 elif [ "$LUA" == "lua5.2" ]; then
67 curl http://www.lua.org/ftp/lua-5.2.4.tar.gz | tar xz
68 cd lua-5.2.4;
69 elif [ "$LUA" == "lua5.3" ]; then
70 curl http://www.lua.org/ftp/lua-5.3.2.tar.gz | tar xz
71 cd lua-5.3.2;
72 fi
73
74 # Build Lua without backwards compatibility for testing
75 perl -i -pe 's/-DLUA_COMPAT_(ALL|5_2)//' src/Makefile
76 make $PLATFORM
77 make INSTALL_TOP="$LUA_HOME_DIR" install;
78
79 ln -s $LUA_HOME_DIR/bin/lua $HOME/.lua/lua
80 ln -s $LUA_HOME_DIR/bin/luac $HOME/.lua/luac;
81
82fi
83
84cd $TRAVIS_BUILD_DIR
85
86lua -v
87
88LUAROCKS_BASE=luarocks-$LUAROCKS
89
90curl --location http://luarocks.org/releases/$LUAROCKS_BASE.tar.gz | tar xz
91
92cd $LUAROCKS_BASE
93
94if [ "$LUA" == "luajit" ]; then
95 ./configure --lua-suffix=jit --with-lua-include="$LUA_HOME_DIR/include/luajit-2.0" --prefix="$LR_HOME_DIR";
96elif [ "$LUA" == "luajit2.0" ]; then
97 ./configure --lua-suffix=jit --with-lua-include="$LUA_HOME_DIR/include/luajit-2.0" --prefix="$LR_HOME_DIR";
98elif [ "$LUA" == "luajit2.1" ]; then
99 ./configure --lua-suffix=jit --with-lua-include="$LUA_HOME_DIR/include/luajit-2.1" --prefix="$LR_HOME_DIR";
100else
101 ./configure --with-lua="$LUA_HOME_DIR" --prefix="$LR_HOME_DIR"
102fi
103
104make build && make install
105
106ln -s $LR_HOME_DIR/bin/luarocks $HOME/.lua/luarocks
107
108cd $TRAVIS_BUILD_DIR
109
110luarocks --version
111
112rm -rf $LUAROCKS_BASE
113
114if [ "$LUAJIT" == "yes" ]; then
115 rm -rf $LUAJIT_BASE;
116elif [ "$LUA" == "lua5.1" ]; then
117 rm -rf lua-5.1.5;
118elif [ "$LUA" == "lua5.2" ]; then
119 rm -rf lua-5.2.4;
120elif [ "$LUA" == "lua5.3" ]; then
121 rm -rf lua-5.3.2;
122fi
diff --git a/.travis_setup.sh b/.travis_setup.sh
deleted file mode 100644
index f186230..0000000
--- a/.travis_setup.sh
+++ /dev/null
@@ -1,45 +0,0 @@
1# A script for setting up environment for travis-ci testing.
2# Sets up Lua and Luarocks.
3# LUA must be "Lua 5.1", "Lua 5.2", "Lua 5.3" or "LuaJIT 2.0".
4
5set -e
6
7echo 'rocks_servers = {
8 "http://luarocks.org/manifests/olivine-labs",
9 "http://rocks.moonscript.org/",
10 "http://luarocks.org/repositories/rocks",
11 "http://luarocks.logiceditor.com/rocks",
12 "http://liblua.so/luarocks/repositories/rocks"
13}' >> ~/config.lua
14
15
16if [ "$LUA" == "LuaJIT 2.0" ]; then
17 wget -O - http://luajit.org/download/LuaJIT-2.0.4.tar.gz | tar xz
18 cd LuaJIT-2.0.4
19 make && sudo make install INSTALL_TSYMNAME=lua;
20else
21 if [ "$LUA" == "Lua 5.1" ]; then
22 wget -O - http://www.lua.org/ftp/lua-5.1.5.tar.gz | tar xz
23 cd lua-5.1.5;
24 elif [ "$LUA" == "Lua 5.2" ]; then
25 wget -O - http://www.lua.org/ftp/lua-5.2.4.tar.gz | tar xz
26 cd lua-5.2.4;
27 elif [ "$LUA" == "Lua 5.3" ]; then
28 wget -O - http://www.lua.org/ftp/lua-5.3.2.tar.gz | tar xz
29 cd lua-5.3.2;
30 fi
31 sudo make linux install;
32fi
33
34cd ..
35wget -O - http://luarocks.org/releases/luarocks-2.3.0.tar.gz | tar xz || wget -O - http://keplerproject.github.io/luarocks/releases/luarocks-2.3.0.tar.gz | tar xz
36cd luarocks-2.3.0
37
38if [ "$LUA" == "LuaJIT 2.0" ]; then
39 ./configure --with-lua-include=/usr/local/include/luajit-2.0;
40else
41 ./configure;
42fi
43
44make build && sudo make install
45cd ..