Docker: Update scripts/build.sh #1815

This commit is contained in:
Michael Mayer 2021-12-15 14:56:47 +01:00
parent 3e052cfbfd
commit 18dc7c335a

View file

@ -2,52 +2,49 @@
set -e
PHOTOPRISM_DATE=`date -u +%y%m%d`
PHOTOPRISM_VERSION=`git describe --always`
PHOTOPRISM_DATE=$(date -u +%y%m%d)
PHOTOPRISM_VERSION=$(git describe --always)
if [[ -z $1 ]] || [[ -z $2 ]]; then
echo "Please provide build mode and output file name" 1>&2
exit 1
echo "Please provide build mode and output file name" 1>&2
exit 1
fi
if [[ $OS == "Windows_NT" ]]; then
PHOTOPRISM_OS=win32
if [[ $PROCESSOR_ARCHITEW6432 == "AMD64" ]]; then
PHOTOPRISM_ARCH=amd64
else
if [[ $PROCESSOR_ARCHITECTURE == "AMD64" ]]; then
PHOTOPRISM_ARCH=amd64
fi
if [[ $PROCESSOR_ARCHITECTURE == "x86" ]]; then
PHOTOPRISM_ARCH=ia32
fi
PHOTOPRISM_OS=win32
if [[ $PROCESSOR_ARCHITEW6432 == "AMD64" ]]; then
PHOTOPRISM_ARCH=amd64
else
if [[ $PROCESSOR_ARCHITECTURE == "AMD64" ]]; then
PHOTOPRISM_ARCH=amd64
fi
if [[ $PROCESSOR_ARCHITECTURE == "x86" ]]; then
PHOTOPRISM_ARCH=ia32
fi
fi
else
PHOTOPRISM_OS=`uname -s`
PHOTOPRISM_ARCH=`uname -m`
PHOTOPRISM_OS=$(uname -s)
PHOTOPRISM_ARCH=$(uname -m)
fi
if [[ $1 == "debug" ]]; then
echo "Building development binary..."
go build -ldflags "-X main.version=${PHOTOPRISM_DATE}-${PHOTOPRISM_VERSION}-${PHOTOPRISM_OS}-${PHOTOPRISM_ARCH}-DEBUG" -o $2 cmd/photoprism/photoprism.go
du -h $2
echo "Done."
go build -ldflags "-X main.version=${PHOTOPRISM_DATE}-${PHOTOPRISM_VERSION}-${PHOTOPRISM_OS}-${PHOTOPRISM_ARCH}-DEBUG" -o $2 cmd/photoprism/photoprism.go
du -h $2
echo "Done."
elif [[ $1 == "race" ]]; then
echo "Building with data race detector..."
go build -race -ldflags "-X main.version=${PHOTOPRISM_DATE}-${PHOTOPRISM_VERSION}-${PHOTOPRISM_OS}-${PHOTOPRISM_ARCH}-DEBUG" -o $2 cmd/photoprism/photoprism.go
du -h $2
echo "Done."
go build -race -ldflags "-X main.version=${PHOTOPRISM_DATE}-${PHOTOPRISM_VERSION}-${PHOTOPRISM_OS}-${PHOTOPRISM_ARCH}-DEBUG" -o $2 cmd/photoprism/photoprism.go
du -h $2
echo "Done."
elif [[ $1 == "static" ]]; then
echo "Building static production binary..."
go build -a -v -ldflags "-linkmode external -extldflags \"-static -L /usr/lib -ltensorflow\" -s -w -X main.version=${PHOTOPRISM_DATE}-${PHOTOPRISM_VERSION}-${PHOTOPRISM_OS}-${PHOTOPRISM_ARCH}" -o $2 cmd/photoprism/photoprism.go
du -h $2
echo "Done."
go build -a -v -ldflags "-linkmode external -extldflags \"-static -L /usr/lib -ltensorflow\" -s -w -X main.version=${PHOTOPRISM_DATE}-${PHOTOPRISM_VERSION}-${PHOTOPRISM_OS}-${PHOTOPRISM_ARCH}" -o $2 cmd/photoprism/photoprism.go
du -h $2
echo "Done."
else
echo "Building production binary..."
# try again if it fails e.g. due a network connection issue...
for i in {1..2}; do
echo "Build #$i:" && go build -ldflags "-s -w -X main.version=${PHOTOPRISM_DATE}-${PHOTOPRISM_VERSION}-${PHOTOPRISM_OS}-${PHOTOPRISM_ARCH}" -o $2 cmd/photoprism/photoprism.go && break || sleep 5;
done
du -h $2
echo "Done."
go build -ldflags "-s -w -X main.version=${PHOTOPRISM_DATE}-${PHOTOPRISM_VERSION}-${PHOTOPRISM_OS}-${PHOTOPRISM_ARCH}" -o $2 cmd/photoprism/photoprism.go
du -h $2
echo "Done."
fi