From 0a606152785c6113b53355ab71fd4a221a654490 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 16 Jan 2021 12:11:01 -0600 Subject: [PATCH] Allow pre-built images to be used to speed up building --- build-amd64.sh | 19 ++++++++++++++++--- build-l4t.sh | 19 ++++++++++++++++--- build-rpi.sh | 19 ++++++++++++++++--- push-images.sh | 11 +++++++++++ 4 files changed, 59 insertions(+), 9 deletions(-) create mode 100755 push-images.sh diff --git a/build-amd64.sh b/build-amd64.sh index c56b929..bee90c1 100755 --- a/build-amd64.sh +++ b/build-amd64.sh @@ -1,11 +1,24 @@ -TAG_NAME="amd64-buster" -OUT_DIR="out_$TAG_NAME" +TARGET_NAME="amd64-buster" DOCKERFILE="Dockerfile.amd64.buster" +TAG_UNIQUE_ID=`git ls-tree HEAD | sha256sum | cut -c-16` +TAG_NAME="${TARGET_NAME}_${TAG_UNIQUE_ID}" +OUT_DIR="out_$TARGET_NAME" + +docker pull cgutman/moonlight-packaging:$TAG_NAME +PULL_EXIT_CODE=$? + rm -rf $OUT_DIR set -e mkdir $OUT_DIR -docker build -f $DOCKERFILE -t cgutman/moonlight-packaging:$TAG_NAME . +if [ $PULL_EXIT_CODE -eq 0 ]; then + echo Using pre-built Docker image - cgutman/moonlight-packaging:$TAG_NAME +else + echo Pre-built image not available - building cgutman/moonlight-packaging:$TAG_NAME + docker build -f $DOCKERFILE -t cgutman/moonlight-packaging:$TAG_NAME . + echo Built Docker image - cgutman/moonlight-packaging:$TAG_NAME +fi + docker run --rm --mount type=bind,source="$(pwd)"/$OUT_DIR,target=/out --mount type=bind,source="$(pwd)"/debian,target=/opt/debian -e COMMIT="$1" cgutman/moonlight-packaging:$TAG_NAME \ No newline at end of file diff --git a/build-l4t.sh b/build-l4t.sh index 4f488bd..6330d13 100755 --- a/build-l4t.sh +++ b/build-l4t.sh @@ -1,11 +1,24 @@ -TAG_NAME="l4t-bionic" -OUT_DIR="out_$TAG_NAME" +TARGET_NAME="l4t-bionic" DOCKERFILE="Dockerfile.l4t.bionic" +TAG_UNIQUE_ID=`git ls-tree HEAD | sha256sum | cut -c-16` +TAG_NAME="${TARGET_NAME}_${TAG_UNIQUE_ID}" +OUT_DIR="out_$TARGET_NAME" + +docker pull cgutman/moonlight-packaging:$TAG_NAME +PULL_EXIT_CODE=$? + rm -rf $OUT_DIR set -e mkdir $OUT_DIR -docker build -f $DOCKERFILE -t cgutman/moonlight-packaging:$TAG_NAME . +if [ $PULL_EXIT_CODE -eq 0 ]; then + echo Using pre-built Docker image - cgutman/moonlight-packaging:$TAG_NAME +else + echo Pre-built image not available - building cgutman/moonlight-packaging:$TAG_NAME + docker build -f $DOCKERFILE -t cgutman/moonlight-packaging:$TAG_NAME . + echo Built Docker image - cgutman/moonlight-packaging:$TAG_NAME +fi + docker run --rm --runtime nvidia --mount type=bind,source="$(pwd)"/$OUT_DIR,target=/out --mount type=bind,source="$(pwd)"/debian,target=/opt/debian -e COMMIT="$1" cgutman/moonlight-packaging:$TAG_NAME \ No newline at end of file diff --git a/build-rpi.sh b/build-rpi.sh index 2389d44..0a35aad 100755 --- a/build-rpi.sh +++ b/build-rpi.sh @@ -1,11 +1,24 @@ -TAG_NAME="rpi-buster" -OUT_DIR="out_$TAG_NAME" +TARGET_NAME="rpi-buster" DOCKERFILE="Dockerfile.rpi.buster" +TAG_UNIQUE_ID=`git ls-tree HEAD | sha256sum | cut -c-16` +TAG_NAME="${TARGET_NAME}_${TAG_UNIQUE_ID}" +OUT_DIR="out_$TARGET_NAME" + +docker pull cgutman/moonlight-packaging:$TAG_NAME +PULL_EXIT_CODE=$? + rm -rf $OUT_DIR set -e mkdir $OUT_DIR -docker build -f $DOCKERFILE -t cgutman/moonlight-packaging:$TAG_NAME . +if [ $PULL_EXIT_CODE -eq 0 ]; then + echo Using pre-built Docker image - cgutman/moonlight-packaging:$TAG_NAME +else + echo Pre-built image not available - building cgutman/moonlight-packaging:$TAG_NAME + docker build -f $DOCKERFILE -t cgutman/moonlight-packaging:$TAG_NAME . + echo Built Docker image - cgutman/moonlight-packaging:$TAG_NAME +fi + docker run --rm --mount type=bind,source="$(pwd)"/$OUT_DIR,target=/out --mount type=bind,source="$(pwd)"/debian,target=/opt/debian -e COMMIT="$1" cgutman/moonlight-packaging:$TAG_NAME \ No newline at end of file diff --git a/push-images.sh b/push-images.sh new file mode 100755 index 0000000..9c0671d --- /dev/null +++ b/push-images.sh @@ -0,0 +1,11 @@ +set -e + +TAG_UNIQUE_ID=`git ls-tree HEAD | sha256sum | cut -c-16` + +docker build -f Dockerfile.rpi.buster -t cgutman/moonlight-packaging:rpi-buster_$TAG_UNIQUE_ID . +docker build -f Dockerfile.amd64.buster -t cgutman/moonlight-packaging:amd64-buster_$TAG_UNIQUE_ID . +docker build -f Dockerfile.l4t.bionic -t cgutman/moonlight-packaging:l4t-bionic_$TAG_UNIQUE_ID . + +docker push cgutman/moonlight-packaging:rpi-buster_$TAG_UNIQUE_ID +docker push cgutman/moonlight-packaging:amd64-buster_$TAG_UNIQUE_ID +docker push cgutman/moonlight-packaging:l4t-bionic_$TAG_UNIQUE_ID