Skip to content
This repository has been archived by the owner on May 22, 2018. It is now read-only.

Commit

Permalink
Merge pull request #11 from djs55/travis
Browse files Browse the repository at this point in the history
Better travis
  • Loading branch information
djs55 committed Dec 22, 2014
2 parents bc6101d + 294d61c commit 27b8d1d
Show file tree
Hide file tree
Showing 3 changed files with 86 additions and 15 deletions.
75 changes: 61 additions & 14 deletions .travis-ci.sh
Original file line number Diff line number Diff line change
@@ -1,19 +1,66 @@
#!/bin/bash -ex
# OPAM packages needed to build tests.
OPAM_PACKAGES="uuidm re uri cohttp ssl lwt cstruct oasis"

function setup_arm_chroot {
echo Setting up qemu chroot for ARM
sudo apt-get install -qq debootstrap qemu-user-static binfmt-support sbuild
df -h
DIR=/arm-chroot
MIRROR=http://ftp.us.debian.org/debian/
sudo mkdir $DIR
sudo debootstrap --variant=buildd --include=fakeroot,build-essential --arch=armel --foreign wheezy $DIR $MIRROR
sudo cp /usr/bin/qemu-arm-static $DIR/usr/bin/
sudo chroot $DIR ./debootstrap/debootstrap --second-stage
sudo sbuild-createchroot --arch=armel --foreign --setup-only wheezy $DIR $MIRROR
echo export OCAML_VERSION=$OCAML_VERSION > envvars.sh
echo export OPAM_VERSION=$OPAM_VERSION >> envvars.sh
echo export XARCH=$XARCH >> envvars.sh
echo export LANG=c >> envvars.sh
echo export OPAMYES=1 >> envvars.sh
echo export OPAMVERBOSE=1 >> envvars.sh
echo export TRAVIS_BUILD_DIR=$TRAVIS_BUILD_DIR >> envvars.sh
chmod a+x envvars.sh
export LANG=c
sudo chroot $DIR apt-get --allow-unauthenticated install -y debian-archive-keyring build-essential m4 git curl sudo
# Add GPG key for anil@recoil.org which the ARM OPAM repo is signed with
sudo chroot $DIR apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5896E99F
echo 'deb [arch=armel] http://www.recoil.org/~avsm/debian-arm wheezy main' > /tmp/opamapt
sudo mv /tmp/opamapt $DIR/etc/apt/sources.list.d/opam.list
sudo chroot $DIR apt-get update
sudo mkdir -p $DIR/$TRAVIS_BUILD_DIR
echo sync:
sudo rsync -av $TRAVIS_BUILD_DIR/ $DIR/$TRAVIS_BUILD_DIR/
echo debug:
ls -la $DIR/$TRAVIS_BUILD_DIR
sudo touch $DIR/.chroot_is_done
sudo chroot $DIR bash -c "cd $TRAVIS_BUILD_DIR && ./.travis-ci.sh"
exit 0
}

case "$OCAML_VERSION,$OPAM_VERSION" in
3.12.1,1.0.0) ppa=avsm/ocaml312+opam10 ;;
3.12.1,1.1.0) ppa=avsm/ocaml312+opam11 ;;
4.00.1,1.0.0) ppa=avsm/ocaml40+opam10 ;;
4.00.1,1.1.0) ppa=avsm/ocaml40+opam11 ;;
4.01.0,1.0.0) ppa=avsm/ocaml41+opam10 ;;
4.01.0,1.1.0) ppa=avsm/ocaml41+opam11 ;;
*) echo Unknown $OCAML_VERSION,$OPAM_VERSION; exit 1 ;;
esac
if [ -e "/.chroot_is_done" ]; then
# we are in the arm chroot
# get environment variable for inside chroot
. ./envvars.sh
else
if [ "$XARCH" = "arm" ]; then
setup_arm_chroot
else
case "$OCAML_VERSION,$OPAM_VERSION" in
3.12.1,1.0.0) ppa=avsm/ocaml312+opam10 ;;
3.12.1,1.1.0) ppa=avsm/ocaml312+opam11 ;;
4.00.1,1.0.0) ppa=avsm/ocaml40+opam10 ;;
4.00.1,1.1.0) ppa=avsm/ocaml40+opam11 ;;
4.01.0,1.0.0) ppa=avsm/ocaml41+opam10 ;;
4.01.0,1.1.0) ppa=avsm/ocaml41+opam11 ;;
4.01.0,1.2.0) ppa=avsm/ocaml41+opam12 ;;
4.02.0,1.2.0) ppa=avsm/ocaml42+opam12 ;;
*) echo Unknown $OCAML_VERSION,$OPAM_VERSION; exit 1 ;;
esac
echo "yes" | sudo add-apt-repository ppa:$ppa
sudo apt-get update -qq
fi
fi

echo "yes" | sudo add-apt-repository ppa:$ppa
sudo apt-get update -qq
sudo apt-get install -qq ocaml ocaml-native-compilers camlp4-extra opam
export OPAMYES=1
export OPAMVERBOSE=1
Expand All @@ -24,7 +71,7 @@ opam --version
opam --git-version

opam init
opam install ${OPAM_PACKAGES}
eval `opam config env`
opam pin add xe .

eval `opam config -env`
make
3 changes: 2 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
language: c
script: bash -ex .travis-ci.sh
env:
- OCAML_VERSION=4.01.0 OPAM_VERSION=1.1.0
- OCAML_VERSION=4.01.0 MIRAGE_BACKEND=unix OPAM_VERSION=1.2.0
- OCAML_VERSION=4.02.0 MIRAGE_BACKEND=unix OPAM_VERSION=1.2.0
23 changes: 23 additions & 0 deletions opam
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
opam-version: "1"
maintainer: "dave.scott@citrix.com"
tags: [
"org:xapi-project"
]
build: [
[make]
[make "install" "BINDIR=%{bin}%"]
]
remove: [
[make "uninstall" "BINDIR=%{bin}%"]
]
depends: [
"cstruct" {>= "0.6.0"}
"oasis"
"lwt"
"ocamlfind"
"cohttp" {>= "0.14.0"}
"ssl"
"re"
"uri"
"uuidm"
]

0 comments on commit 27b8d1d

Please sign in to comment.