| #!/bin/bash |
| |
| set -x |
| COMMIT=${1-HEAD} |
| REPO=${2-http://github.com/dotcloud/docker} |
| BRANCH=${3-master} |
| |
| # Generate a random string of $1 characters |
| function random { |
| cat /dev/urandom | tr -cd 'a-f0-9' | head -c $1 |
| } |
| |
| # Compute test paths |
| BASE_PATH=`pwd`/test_docker_$(random 12) |
| DOCKER_PATH=$BASE_PATH/go/src/github.com/dotcloud/docker |
| export GOPATH=$BASE_PATH/go:$DOCKER_PATH/vendor |
| |
| # Fetch latest master |
| mkdir -p $DOCKER_PATH |
| cd $DOCKER_PATH |
| git init . |
| git fetch -q http://github.com/dotcloud/docker master |
| git reset --hard FETCH_HEAD |
| |
| # Merge commit |
| git fetch -q "$REPO" "$BRANCH" |
| git merge --no-edit $COMMIT || exit 1 |
| |
| # Test commit |
| go test -v; exit_status=$? |
| |
| # Cleanup testing directory |
| rm -rf $BASE_PATH |
| |
| exit $exit_status |