From f7259fdee51200f95ecc6584c38e0b8155749919 Mon Sep 17 00:00:00 2001 From: pvizeli Date: Tue, 21 Mar 2017 12:30:46 +0100 Subject: [PATCH] Add resinhup builder --- .../resinhup-build/create_resinhup.sh | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 build-scripts/resinhup-build/create_resinhup.sh diff --git a/build-scripts/resinhup-build/create_resinhup.sh b/build-scripts/resinhup-build/create_resinhup.sh new file mode 100644 index 000000000..e6b316013 --- /dev/null +++ b/build-scripts/resinhup-build/create_resinhup.sh @@ -0,0 +1,87 @@ +#!/bin/bash + +set -e + +BUILD_CONTAINER_NAME=resinhup-build-$$ +DOCKER_REPO=pvizeli + +cleanup() { + echo "[INFO] Cleanup." + + # Stop docker container + echo "[INFO] Cleaning up homeassistant-build container." + docker stop $BUILD_CONTAINER_NAME 2> /dev/null || true + docker rm --volumes $BUILD_CONTAINER_NAME 2> /dev/null || true + + if [ "$1" == "fail" ]; then + exit 1 + fi +} +trap 'cleanup fail' SIGINT SIGTERM + +# Sanity checks +if [ "$#" -ne 2 ]; then + echo "Usage: create_resinhup.sh " + echo "Optional environment: BUILD_DIR" + exit 1 +fi + +# Get the absolute script location +pushd `dirname $0` > /dev/null 2>&1 +SCRIPTPATH=`pwd` +popd > /dev/null 2>&1 + +MACHINE=$2 +BASE_IMAGE="resin\/${MACHINE}-python:3.6" +DOCKER_TAG=$1 +DOCKER_IMAGE=resinhup-${MACHINE} +BUILD_DIR=${BUILD_DIR:=$SCRIPTPATH} +WORKSPACE=${BUILD_DIR:=$SCRIPTPATH}/resinhup + +# evaluate git repo and arch +case $MACHINE in + "raspberrypi3") + DOCKER_FILE_NAME="Dockerfile.raspberrypi3" + ;; + "raspberrypi2") + DOCKER_FILE_NAME="Dockerfile.raspberryp-i2" + ;; + "raspberrypi") + DOCKER_FILE_NAME="Dockerfile.raspberry-pi" + ;; + *) + echo "[ERROR] ${MACHINE} unknown!" + exit 1 + ;; +esac + +# setup docker +echo "[INFO] Setup workspace" +mkdir -p $BUILD_DIR + +git clone https://github.com/resin-os/resinhup $WORKSPACE +cd $WORKSPACE && git checkout $DOCKER_TAG + +cp $DOCKER_FILE_NAME Dockerfile + +# Run build +echo "[INFO] start docker build" +docker stop $BUILD_CONTAINER_NAME 2> /dev/null || true +docker rm --volumes $BUILD_CONTAINER_NAME 2> /dev/null || true +docker run --rm \ + -v $WORKSPACE:/docker \ + -v ~/.docker:/root/.docker \ + -e DOCKER_REPO=$DOCKER_REPO \ + -e DOCKER_IMAGE=$DOCKER_IMAGE \ + -e DOCKER_TAG=$DOCKER_TAG \ + --name $BUILD_CONTAINER_NAME \ + --privileged \ + pvizeli/docker-build-env \ + /run-docker.sh + +echo "[INFO] cleanup WORKSPACE" +cd $BUILD_DIR +rm -rf $WORKSPACE + +cleanup +exit 0