From 8c1e3dcc095183b6aee0f4e612a700699df7fe18 Mon Sep 17 00:00:00 2001 From: Andrey Beletsky Date: Wed, 29 Sep 2021 14:42:31 +0700 Subject: [PATCH] Streamline build procedure --- Makefile | 19 +++++-------------- README.md | 14 ++++++-------- launcher.sh | 1 + scripts/build.sh | 34 ++++++++++++++++++++++++++++++++++ scripts/get_release.sh | 35 ----------------------------------- scripts/publish.sh | 29 ----------------------------- scripts/push.sh | 14 ++++++++++++++ 7 files changed, 60 insertions(+), 86 deletions(-) create mode 100755 scripts/build.sh delete mode 100755 scripts/get_release.sh delete mode 100755 scripts/publish.sh create mode 100755 scripts/push.sh diff --git a/Makefile b/Makefile index 2a7fb99..dcff023 100644 --- a/Makefile +++ b/Makefile @@ -1,18 +1,9 @@ -all: - make clean - make latest_image - make publish - make clean +image: + scripts/build.sh ${VERSION} -latest_image: - scripts/get_release.sh - -latest_rc_image: - scripts/get_release.sh rc - -.PHONY: publish -publish: - scripts/publish.sh +.PHONY: push +push: + scripts/push.sh ${VERSION} clean: rm -rf lbrynet lbrynet-linux.zip diff --git a/README.md b/README.md index 49bf72e..4a36bc5 100644 --- a/README.md +++ b/README.md @@ -32,17 +32,15 @@ You need to have the docker toolset installed on your system, as well as the abi This is the preferred method because it also checks if our newly built container can actually run. ``` -make latest_image -# or -make latest_rc_image -make publish VERSION=0.36.0 +export VERSION=0.101.1 +make image +make publish ``` #### Manually ``` -make get_release -docker build -t lbry/lbrynet-tv:0.36.0 . -docker tag lbry/lbrynet-tv:0.36.0 lbry/lbrynet-tv:latest -docker push lbry/lbrynet-tv +make image +docker build -t lbry/lbrynet-tv:0.101.1 +docker push lbry/lbrynet-tv:0.101.1 ``` diff --git a/launcher.sh b/launcher.sh index ba2fb3a..f40ee50 100644 --- a/launcher.sh +++ b/launcher.sh @@ -46,4 +46,5 @@ if [ ! -z ${SDK_LBRYUM_SERVERS+x} ]; then SDK_ARGS="${SDK_ARGS} --lbryum-servers=${SDK_LBRYUM_SERVERS}" fi +rm -rf /storage/lbrynet/lbrynet.sqlite* ./lbrynet start --config=$CONFIG $SDK_ARGS diff --git a/scripts/build.sh b/scripts/build.sh new file mode 100755 index 0000000..b28c78f --- /dev/null +++ b/scripts/build.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +set -e + +BASE_IMAGE_NAME=lbry/lbrynet-tv +WAIT=5 + +if [ -z ${1} ]; then + echo "Please provide lbrynet version as an argument." + exit 1 +fi + +VERSION=$1 +RELEASE_URL="https://github.com/lbryio/lbry-sdk/releases/download/v$VERSION/lbrynet-linux.zip" + +echo "Getting the version ${VERSION} from ${RELEASE_URL}..." +curl -OL $RELEASE_URL +unzip lbrynet-linux.zip +rm lbrynet-linux.zip + +docker build -t ${BASE_IMAGE_NAME}:${VERSION} . + +echo "Launching container for ${BASE_IMAGE_NAME}:${VERSION} and giving it ${WAIT}s to launch..." + +ID=$(docker run --detach --rm $BASE_IMAGE_NAME:$VERSION) +sleep $WAIT + +if [[ -z "${ID+x}" || ! $(docker top "$ID") ]]; then + echo "Container crashed unexpectedly, aborting" + exit 1 +fi + +echo "Container launched successfully, stopping it" +docker kill $ID diff --git a/scripts/get_release.sh b/scripts/get_release.sh deleted file mode 100755 index a699645..0000000 --- a/scripts/get_release.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash - -set -e - -BASE_IMAGE_NAME=lbry/lbrynet-tv - -if [[ ${1} == "rc" ]]; then - API_URL="https://api.github.com/repos/lbryio/lbry/releases" - RC_SUFFIX="-rc" -elif [ ${1} != "" ]; then - API_URL="https://api.github.com/repos/lbryio/lbry/releases/tags/${1}" - RC_SUFFIX="" -else - API_URL="https://api.github.com/repos/lbryio/lbry/releases/latest" - RC_SUFFIX="" -fi - -echo "URL: ${API_URL}" - -URL=$( - curl -siL ${API_URL}| - grep browser_download_url| - grep linux| - head -n 1| - sed -E 's/.*"([^"]+)".*/\1/' -) - -VERSION=$(echo $URL|sed -e 's/.*download\/v\([^"]*\)\/.*/\1/') - -echo "Getting the latest version ${VERSION} from ${URL}..." -curl -OL $URL -unzip lbrynet-linux.zip -rm lbrynet-linux.zip - -docker build -t ${BASE_IMAGE_NAME}:${VERSION} -t ${BASE_IMAGE_NAME}:latest${RC_SUFFIX} . diff --git a/scripts/publish.sh b/scripts/publish.sh deleted file mode 100755 index 5381188..0000000 --- a/scripts/publish.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -set -x -set -e - -WAIT=5 -BASE_IMAGE_NAME=lbry/lbrynet-tv - -if [ -z ${VERSION+x} ]; then - echo "Please provide ${BASE_IMAGE_NAME} version as \$VERSION variable." - exit 1 -fi - -echo "Launching daemon container for ${BASE_IMAGE_NAME}:${VERSION} and giving it ${WAIT} secs..." - -ID=$(docker run --detach --rm $BASE_IMAGE_NAME:$VERSION) -sleep $WAIT - -if [[ -z "${ID+x}" || ! $(docker top "$ID") ]]; then - echo "Container crashed unexpectedly, aborting" - exit 1 -fi - -echo "Container launched successfully, stopping it" -docker kill $ID - -echo "Pushing to Docker Hub..." -docker push ${BASE_IMAGE_NAME}:${VERSION} -docker push ${BASE_IMAGE_NAME}:latest diff --git a/scripts/push.sh b/scripts/push.sh new file mode 100755 index 0000000..91859cd --- /dev/null +++ b/scripts/push.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +set -e + +BASE_IMAGE_NAME=lbry/lbrynet-tv + +if [ -z ${1} ]; then + echo "Please provide ${BASE_IMAGE_NAME} version as an argument." + exit 1 +fi + +VERSION=$1 +echo "Pushing to Docker Hub..." +docker push ${BASE_IMAGE_NAME}:${VERSION}