2020-06-17 03:27:55 +03:00
#!/bin/sh
# Human readable names of binary distributions
DISTRO = ( macOS linux)
# Operating systems for the respective distributions
OS = ( darwin linux)
# Architectures for the respective distributions
ARCH = ( amd64 amd64)
# Version
VERSION = $1
2020-06-18 09:54:55 +03:00
if [ [ -z " ${ VERSION } " ] ] ; then
echo "Version must be specified when running build"
2020-06-22 19:53:26 +03:00
exit
2020-06-18 09:54:55 +03:00
fi
2020-06-17 03:27:55 +03:00
[ [ -z " ${ VERSION } " ] ] && VERSION = 'unknownver' || VERSION = " ${ VERSION } "
GIT_COMMIT = $( git rev-list -1 HEAD)
# Change to the root directory of the repository
cd $( git rev-parse --show-toplevel)
echo "Cleaning working directories..."
2020-06-19 03:47:44 +03:00
rm -rf ./webroot/hls/* ./hls/* ./webroot/thumbnail.jpg
2020-06-17 03:27:55 +03:00
echo " Creating version ${ VERSION } from commit ${ GIT_COMMIT } "
mkdir -p dist
build( ) {
NAME = $1
OS = $2
ARCH = $3
VERSION = $4
GIT_COMMIT = $5
echo " Building ${ NAME } ( ${ OS } / ${ ARCH } ) release... "
2020-06-23 04:11:56 +03:00
mkdir -p dist/${ NAME }
2020-06-22 19:53:26 +03:00
mkdir -p dist/${ NAME } /webroot/static
2020-06-17 03:27:55 +03:00
2020-06-18 09:24:27 +03:00
# Default files
2020-06-23 04:11:56 +03:00
cp config-example.yaml dist/${ NAME } /config.yaml
2020-06-18 09:24:27 +03:00
cp webroot/static/content-example.md dist/${ NAME } /webroot/static/content.md
2020-06-17 03:27:55 +03:00
cp -R webroot/ dist/${ NAME } /webroot/
cp -R doc/ dist/${ NAME } /doc/
2020-06-26 03:44:47 +03:00
cp -R static/ dist/${ NAME } /static
2020-06-17 03:27:55 +03:00
cp README.md dist/${ NAME }
pushd dist/${ NAME } >> /dev/null
2020-07-13 03:58:34 +03:00
2020-07-20 05:04:49 +03:00
CGO_ENABLED = 1 ~/go/bin/xgo -ldflags " -s -w -X main.GitCommit= ${ GIT_COMMIT } -X main.BuildVersion= ${ VERSION } -X main.BuildType= ${ NAME } " -targets " ${ OS } / ${ ARCH } " github.com/gabek/owncast
2020-07-13 03:58:34 +03:00
mv owncast-*-${ ARCH } owncast
2020-06-17 03:27:55 +03:00
zip -r -q -8 ../owncast-$NAME -$VERSION .zip .
popd >> /dev/null
rm -rf dist/${ NAME } /
}
2020-07-15 20:40:04 +03:00
for i in " ${ !DISTRO[@] } " ; do
build ${ DISTRO [ $i ] } ${ OS [ $i ] } ${ ARCH [ $i ] } $VERSION $GIT_COMMIT
done
2020-06-17 03:27:55 +03:00
# Create the tag
2020-07-07 02:26:38 +03:00
# git tag -a "v${VERSION}" -m "Release build v${VERSION}"
2020-06-17 03:27:55 +03:00
2020-07-07 02:26:38 +03:00
# # On macOS open the Github page for new releases so they can be uploaded
# if test -f "/usr/bin/open"; then
# open "https://github.com/gabek/owncast/releases/new"
# open dist
# fi
2020-07-07 10:23:21 +03:00
# Docker build
# Must authenticate first: https://docs.github.com/en/packages/using-github-packages-with-your-projects-ecosystem/configuring-docker-for-use-with-github-packages#authenticating-to-github-packages
# DOCKER_IMAGE="owncast-${VERSION}"
# echo "Building Docker image ${DOCKER_IMAGE}..."
2020-07-15 03:42:06 +03:00
#
2020-07-07 10:23:21 +03:00
# # Change to the root directory of the repository
# cd $(git rev-parse --show-toplevel)
2020-07-15 03:42:06 +03:00
#
# docker build --build-arg NAME=docker --build-arg VERSION=${VERSION} --build-arg GIT_COMMIT=$GIT_COMMIT -t owncast . -f scripts/Dockerfile-build
2020-07-07 10:23:21 +03:00
# docker tag $DOCKER_IMAGE docker.pkg.github.com/gabek/owncast/$DOCKER_IMAGE:$VERSION
# docker push docker.pkg.github.com/gabek/owncast/$DOCKER_IMAGE:$VERSION