Skip to content

Commit 9404716

Browse files
committed
Travis CI: Work without sudo.
1 parent 1cd909c commit 9404716

File tree

7 files changed

+139
-44
lines changed

7 files changed

+139
-44
lines changed

Diff for: .travis.yml

+45-20
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,58 @@
1-
language: c
1+
language: php
2+
3+
cache:
4+
directories:
5+
- php-5.6.8-64-0
6+
- php-5.6.8-32-1
7+
- php-5.6.8-32-0
8+
- php-5.5.24-64-0
9+
- php-5.5.24-32-1
10+
- php-5.5.24-32-0
11+
- php-5.4.40-64-0
12+
- php-5.4.40-32-1
13+
- php-5.4.40-32-0
14+
- php-5.3.29-64-0
15+
- php-5.3.29-32-1
16+
- php-5.3.29-32-0
17+
- proot
18+
- rootfs-amd64
19+
- rootfs-i386
20+
- vendor
21+
- xdebug-2.2.7-php-5.6.8-64-0
22+
- xdebug-2.2.7-php-5.6.8-32-1
23+
- xdebug-2.2.7-php-5.6.8-32-0
24+
- xdebug-2.2.7-php-5.5.24-64-0
25+
- xdebug-2.2.7-php-5.5.24-32-1
26+
- xdebug-2.2.7-php-5.5.24-32-0
27+
- xdebug-2.2.7-php-5.4.40-64-0
28+
- xdebug-2.2.7-php-5.4.40-32-1
29+
- xdebug-2.2.7-php-5.4.40-32-0
30+
- xdebug-2.2.7-php-5.3.29-64-0
31+
- xdebug-2.2.7-php-5.3.29-32-1
32+
- xdebug-2.2.7-php-5.3.29-32-0
233

334
env:
435
global:
536
- phpxdebugver=2.2.7
637
matrix:
7-
- phpver=5.6.6 phpint=64
8-
- phpver=5.6.6 phpint=32 phplfs=1
9-
- phpver=5.6.6 phpint=32
10-
- phpver=5.5.22 phpint=64
11-
- phpver=5.5.22 phpint=32 phplfs=1
12-
- phpver=5.5.22 phpint=32
13-
- phpver=5.4.38 phpint=64
14-
- phpver=5.4.38 phpint=32 phplfs=1
15-
- phpver=5.4.38 phpint=32
16-
- phpver=5.3.29 phpint=64
38+
- phpver=5.6.8 phpint=64 phplfs=0
39+
- phpver=5.6.8 phpint=32 phplfs=1
40+
- phpver=5.6.8 phpint=32 phplfs=0
41+
- phpver=5.5.24 phpint=64 phplfs=0
42+
- phpver=5.5.24 phpint=32 phplfs=1
43+
- phpver=5.5.24 phpint=32 phplfs=0
44+
- phpver=5.4.40 phpint=64 phplfs=0
45+
- phpver=5.4.40 phpint=32 phplfs=1
46+
- phpver=5.4.40 phpint=32 phplfs=0
47+
- phpver=5.3.29 phpint=64 phplfs=0
1748
- phpver=5.3.29 phpint=32 phplfs=1
18-
- phpver=5.3.29 phpint=32
49+
- phpver=5.3.29 phpint=32 phplfs=0
1950

2051
install:
21-
- . travis/install-apt.sh
22-
- . travis/install-php.sh
23-
- curl -sS https://getcomposer.org/installer | /usr/bin/php
24-
- /usr/bin/php composer.phar install
52+
- travis/install.sh
2553

2654
script:
27-
- truncate -s 5G test.bin
28-
- /usr/local/bin/php -r "var_dump(filesize('test.bin'));"
29-
- xdebug=`find /usr/local/lib/php/ -name xdebug.so`
30-
- /usr/local/bin/php -d zend_extension="$xdebug" vendor/bin/phpunit --coverage-clover coverage.xml
55+
- travis/script.sh
3156

3257
after_script:
3358
- wget https://scrutinizer-ci.com/ocular.phar

Diff for: travis/common.sh

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#!/bin/sh
2+
export phpdir="php-$phpver-$phpint-$phplfs"
3+
export phptarget="$phpdir/target"
4+
export phpbin="$phptarget/bin/php"
5+
export xdebugdir="xdebug-$phpxdebugver-$phpdir"
6+
7+
if [ "$phpint" -eq "32" ]
8+
then
9+
export rootfsarch='i386'
10+
else
11+
export rootfsarch='amd64'
12+
fi
13+
14+
export rootfsdir="rootfs-$rootfsarch"
15+
export prootbin='proot/proot-x86_64'
16+
export prootcmd="$prootbin -R $rootfsdir -0"

Diff for: travis/install-apt.sh

+10-10
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
#!/bin/sh
2-
PKG='php5-cli'
3-
if [ "$phpint" -eq "64" ]
4-
then
5-
PKG="$PKG libcurl4-openssl-dev libxml2-dev"
6-
else
7-
PKG="$PKG libcurl4-openssl-dev:i386 libxml2-dev:i386 gcc-multilib"
8-
fi
1+
#!/bin/sh -ex
2+
pkg='
3+
build-essential
4+
curl
5+
libcurl4-openssl-dev
6+
libxml2-dev
7+
php5-dev
8+
'
99

10-
sudo apt-get update
11-
sudo apt-get install $PKG
10+
apt-get update -qq
11+
apt-get install -qy $pkg

Diff for: travis/install-php.sh

+28-14
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#!/bin/bash
1+
#!/bin/bash -ex
22
export CCASFLAGS="-m$phpint"
33
export CPPFLAGS="-m$phpint"
44
export LDFLAGS="-m$phpint"
@@ -11,22 +11,36 @@ else
1111
fi
1212

1313
# PHP
14-
phpid="php-$phpver"
15-
curl -L "http://php.net/get/$phpid.tar.bz2/from/this/mirror" | tar xj
16-
pushd "$phpid"
14+
mkdir -p "$phpdir"
15+
pushd "$phpdir"
16+
if [ ! -e "./LICENSE" ]
17+
then
18+
curl -L "http://php.net/get/php-$phpver.tar.bz2/from/this/mirror" |
19+
tar xj --strip-components=1
20+
fi
1721
./configure \
22+
--disable-cgi \
23+
--prefix="$(pwd)/target" \
1824
--without-pear \
19-
--with-curl
20-
make
21-
sudo make install
25+
--with-curl \
26+
> /dev/null
27+
make > /dev/null
28+
make install
2229
popd
2330

2431
# Xdebug
25-
xdebugid="xdebug-$phpxdebugver"
26-
curl -L "http://xdebug.org/files/$xdebugid.tgz" | tar xz
27-
pushd "$xdebugid"
28-
/usr/local/bin/phpize
29-
./configure --enable-xdebug
30-
make
31-
sudo make install
32+
mkdir -p "$xdebugdir"
33+
pushd "$xdebugdir"
34+
if [ ! -e "./LICENSE" ]
35+
then
36+
curl -L "http://xdebug.org/files/xdebug-$phpxdebugver.tgz" |
37+
tar xz --strip-components=1
38+
fi
39+
"../$phptarget/bin/phpize"
40+
./configure \
41+
--enable-xdebug \
42+
--with-php-config="../$phptarget/bin/php-config" \
43+
> /dev/null
44+
make > /dev/null
45+
make install
3246
popd

Diff for: travis/install.sh

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/bin/sh -ex
2+
. travis/common.sh
3+
travis/setup-proot.sh
4+
composer install
5+
$prootcmd travis/install-apt.sh
6+
$prootcmd travis/install-php.sh

Diff for: travis/script.sh

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/bin/bash -ex
2+
. travis/common.sh
3+
4+
xdebug=xdebug.so
5+
if [ $($prootcmd "$phpbin" -r "echo (int) version_compare(PHP_VERSION, '5.5.0', '<');") == "1" ]
6+
then
7+
xdebug=$(find "$phptarget" -type f -name "$xdebug")
8+
fi
9+
10+
$prootcmd \
11+
"$phpbin" \
12+
-d zend_extension="$xdebug" \
13+
vendor/bin/phpunit \
14+
--coverage-clover coverage.xml \
15+
--verbose

Diff for: travis/setup-proot.sh

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/bin/bash -ex
2+
3+
if [ ! -e "$prootbin" ]
4+
then
5+
mkdir -p $(dirname "$prootbin")
6+
wget http://static.proot.me/proot-x86_64 -O "$prootbin"
7+
chmod +x "$prootbin"
8+
fi
9+
10+
if [ ! -e "$rootfsdir/etc/passwd" ]
11+
then
12+
mkdir -p $rootfsdir
13+
pushd $rootfsdir
14+
# tar fails because devices can not be created due to not being super user
15+
curl -L "http://cdimage.ubuntu.com/ubuntu-core/releases/14.04/release/ubuntu-core-14.04.2-core-$rootfsarch.tar.gz" |
16+
(tar xz 2> /dev/null || true)
17+
popd
18+
$prootcmd locale-gen en_US.UTF-8
19+
fi

0 commit comments

Comments
 (0)