windows docker build, package tests

This commit is contained in:
Bryan Thornbury 2015-10-22 10:13:05 -07:00
parent 94f04350f2
commit 2f8a99e26d
3 changed files with 27 additions and 19 deletions

View file

@ -10,20 +10,12 @@ DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
cd $DIR/.. cd $DIR/..
# Add an option to override the Docker Host
HOST_CODE_DIR=$(pwd)
if [[ "$1" != "" ]]; then
HOST_CODE_DIR=$1
fi
# Add an option to override the Script to Run
BUILD_SCRIPT=/opt/code/build.sh
if [[ "$2" != "" ]]; then
BUILD_SCRIPT=$2
fi
[ -z "$DOTNET_BUILD_CONTAINER_TAG" ] && DOTNET_BUILD_CONTAINER_TAG="dotnetcli-build" [ -z "$DOTNET_BUILD_CONTAINER_TAG" ] && DOTNET_BUILD_CONTAINER_TAG="dotnetcli-build"
[ -z "$DOTNET_BUILD_CONTAINER_NAME" ] && DOTNET_BUILD_CONTAINER_NAME="dotnetcli-build-container" [ -z "$DOTNET_BUILD_CONTAINER_NAME" ] && DOTNET_BUILD_CONTAINER_NAME="dotnetcli-build-container"
[ -z "$DOCKER_HOST_SHARE_DIR" ] && DOCKER_HOST_SHARE_DIR=$(pwd)
[ -z "$BUILD_COMMAND" ] && BUILD_COMMAND="//opt\\code\\build.sh"
echo $DOCKER_HOST_SHARE_DIR
# Build the docker container (will be fast if it is already built) # Build the docker container (will be fast if it is already built)
docker build -t $DOTNET_BUILD_CONTAINER_TAG scripts/docker/ docker build -t $DOTNET_BUILD_CONTAINER_TAG scripts/docker/
@ -31,7 +23,7 @@ docker build -t $DOTNET_BUILD_CONTAINER_TAG scripts/docker/
# Run the build in the container # Run the build in the container
docker rm -f $DOTNET_BUILD_CONTAINER_NAME docker rm -f $DOTNET_BUILD_CONTAINER_NAME
docker run \ docker run \
-v $HOST_CODE_DIR:/opt/code \ -v $DOCKER_HOST_SHARE_DIR:/opt/code \
--name $DOTNET_BUILD_CONTAINER_NAME \ --name $DOTNET_BUILD_CONTAINER_NAME \
-e DOTNET_BUILD_VERSION=$DOTNET_BUILD_VERSION \ -e DOTNET_BUILD_VERSION=$DOTNET_BUILD_VERSION \
$DOTNET_BUILD_CONTAINER_TAG $BUILD_SCRIPT $DOTNET_BUILD_CONTAINER_TAG $BUILD_COMMAND

View file

@ -30,6 +30,7 @@ execute(){
create_empty_debian_layout create_empty_debian_layout
copy_files_to_debian_layout copy_files_to_debian_layout
create_debian_package create_debian_package
test_debian_package
} }
create_empty_debian_layout(){ create_empty_debian_layout(){
@ -56,4 +57,17 @@ create_debian_package(){
$REPO_ROOT/package_tool/package_tool $PACKAGE_LAYOUT_DIR $PACKAGE_OUTPUT_DIR $REPO_ROOT/package_tool/package_tool $PACKAGE_LAYOUT_DIR $PACKAGE_OUTPUT_DIR
} }
test_debian_package(){
git clone https://github.com/sstephenson/bats.git /tmp/bats
pushd /tmp/bats
./install.sh /usr/local
popd
bats $PACKAGE_OUTPUT_DIR/test_package.bats
# if [[ -d "$PACKAGE_OUTPUT_DIR/integration_tests" ]]; then
# bats
# fi
}
execute execute

View file

@ -74,15 +74,17 @@ create_or_start_vm(){
} }
copy_code_to_vm(){ copy_code_to_vm(){
echo "Copying Code to VM..."
docker-machine ssh $VM_NAME "sudo rm -rf $VM_CODE_DIR" docker-machine ssh $VM_NAME "sudo rm -rf $VM_CODE_DIR"
docker-machine scp -r $REPO_ROOT $VM_NAME:$VM_CODE_DIR >> /dev/null 2>&1 docker-machine scp -r $REPO_ROOT $VM_NAME:$VM_CODE_DIR >> /dev/null 2>&1
} }
run_build(){ run_build(){
local host_code=$(_convert_path $VM_CODE_DIR) # These are env variables for dockerbuild.sh
$DIR/dockerbuild.sh $host_code //opt\\code\\build.sh export DOCKER_HOST_SHARE_DIR="$(_convert_path $VM_CODE_DIR)"
echo $DOCKER_HOST_SHARE_DIR
$DIR/dockerbuild.sh
} }
# This will duplicate the entire repo + any side effects from # This will duplicate the entire repo + any side effects from
@ -92,8 +94,8 @@ copy_results_from_vm(){
T_RESULTS_DIR=${T_RESULTS_DIR#/} T_RESULTS_DIR=${T_RESULTS_DIR#/}
mkdir $T_RESULTS_DIR mkdir $T_RESULTS_DIR
docker-machine ssh $VM_NAME "sudo chmod -R a+rx $VM_CODE_DIR"
docker-machine scp -r $VM_NAME:$VM_CODE_DIR/artifacts $REPO_ROOT >> /dev/null 2>&1 docker-machine scp -r $VM_NAME:$VM_CODE_DIR/artifacts $REPO_ROOT #>> /dev/null 2>&1
} }
execute execute