Skip to content

Commit

Permalink
Merge pull request #27 from rmohr/travis
Browse files Browse the repository at this point in the history
Fix broken travis builds
  • Loading branch information
aanand committed Dec 31, 2014
2 parents 04d77a0 + 7f0bb15 commit 5e58cc4
Show file tree
Hide file tree
Showing 4 changed files with 80 additions and 96 deletions.
96 changes: 1 addition & 95 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,105 +30,11 @@ before_install: |
# download docker
curl -sLo docker \
https://get.docker.io/builds/Linux/x86_64/docker-1.0.0
https://get.docker.io/builds/Linux/x86_64/docker-1.3.2
chmod +x docker
# ---------------------------------------------------------------------------
# create tests.sh script
cat > tests.sh <<'BASH'
#!/bin/bash
# go back to where we were invoked
cd $WORKDIR
save_and_shutdown() {
# save built for host result
echo $? > /tmp/build.status
# force clean shutdown
halt -f
}
# make sure we shut down cleanly
trap save_and_shutdown EXIT
# configure path to include /usr/local
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# can't do much without proc!
mount -t proc none /proc
# pseudo-terminal devices
mkdir -p /dev/pts
mount -t devpts none /dev/pts
# shared memory a good idea
mkdir -p /dev/shm
mount -t tmpfs none /dev/shm
# sysfs a good idea
mount -t sysfs none /sys
# pidfiles and such like
mkdir -p /var/run
mount -t tmpfs none /var/run
# takes the pain out of cgroups
cgroups-mount
# mount /var/lib/docker with a tmpfs
mount -t tmpfs none /var/lib/docker
# enable ipv4 forwarding for docker
echo 1 > /proc/sys/net/ipv4/ip_forward
# configure networking
ip addr add 127.0.0.1 dev lo
ip link set lo up
ip addr add 10.1.1.1/24 dev eth0
ip link set eth0 up
ip route add default via 10.1.1.254
# configure dns (google public)
mkdir -p /run/resolvconf
echo 'nameserver 8.8.8.8' > /run/resolvconf/resolv.conf
mount --bind /run/resolvconf/resolv.conf /etc/resolv.conf
# start docker backgrounded
((./docker -d >/dev/null 2>&1 &) &)
sleep 5
# activate virtualenv
source $HOME/virtualenv/python2.7/bin/activate
# run the build
py.test -q tests && behave -c
BASH
chmod +x tests.sh
# ---------------------------------------------------------------------------
# create run.sh script
cat > run.sh <<'BASH'
#!/bin/bash
# assume failure
echo 1 > /tmp/build.status
# run the build inside UML kernel
./linux quiet mem=2G rootfstype=hostfs rw \
eth0=slirp,,/usr/bin/slirp-fullbolt \
init=$(pwd)/tests.sh WORKDIR=$(pwd) HOME=$HOME
# grab the build result and use it
exit $(cat /tmp/build.status)
BASH
chmod +x run.sh
install: pip install -r requirements-dev.txt
Expand Down
2 changes: 1 addition & 1 deletion features/environment.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ def before_all(ctx):
Pulls down busybox:latest before anything is tested.
"""

ctx.client = docker.Client()
ctx.client = docker.Client(version='1.15')
ctx.client.pull('busybox:latest')


Expand Down
12 changes: 12 additions & 0 deletions run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/bash

# assume failure
echo 1 > /tmp/build.status

# run the build inside UML kernel
./linux quiet mem=2G rootfstype=hostfs rw \
eth0=slirp,,/usr/bin/slirp-fullbolt \
init=$(pwd)/tests.sh WORKDIR=$(pwd) HOME=$HOME

# grab the build result and use it
exit $(cat /tmp/build.status)
66 changes: 66 additions & 0 deletions tests.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
#!/bin/bash

# go back to where we were invoked
cd $WORKDIR

save_and_shutdown() {
# save built for host result
echo $? > /tmp/build.status
# force clean shutdown
halt -f
}

# make sure we shut down cleanly
trap save_and_shutdown EXIT

# configure path to include /usr/local
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

# can't do much without proc!
mount -t proc none /proc

# pseudo-terminal devices
mkdir -p /dev/pts
mount -t devpts none /dev/pts

# shared memory a good idea
mkdir -p /dev/shm
mount -t tmpfs none /dev/shm

# sysfs a good idea
mount -t sysfs none /sys

# pidfiles and such like
mkdir -p /var/run
mount -t tmpfs none /var/run

# takes the pain out of cgroups
cgroups-mount

# mount /var/lib/docker with a tmpfs
mount -t tmpfs none /var/lib/docker

# enable ipv4 forwarding for docker
echo 1 > /proc/sys/net/ipv4/ip_forward

# configure networking
ip addr add 127.0.0.1 dev lo
ip link set lo up
ip addr add 10.1.1.1/24 dev eth0
ip link set eth0 up
ip route add default via 10.1.1.254

# configure dns (google public)
mkdir -p /run/resolvconf
echo 'nameserver 8.8.8.8' > /run/resolvconf/resolv.conf
mount --bind /run/resolvconf/resolv.conf /etc/resolv.conf

# start docker backgrounded
((./docker -d >/dev/null 2>&1 &) &)
sleep 5
# activate virtualenv
source $HOME/virtualenv/python2.7/bin/activate
# run the build
py.test -q tests && behave -c

0 comments on commit 5e58cc4

Please sign in to comment.