mirror of
https://github.com/owncast/owncast.git
synced 2024-11-28 19:19:06 +03:00
100 lines
2.9 KiB
Bash
100 lines
2.9 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
# This script will download all the releases of Owncast and test them
|
||
|
# to ensure that upgrades work as expected. It will also test the
|
||
|
# development branch as the final test.
|
||
|
# It is hard coded to run under 64bit intel linux.
|
||
|
|
||
|
# set -o errexit
|
||
|
set -o pipefail
|
||
|
|
||
|
releases=(
|
||
|
"https://github.com/owncast/owncast/releases/download/v0.0.6/owncast-0.0.6-linux-64bit.zip"
|
||
|
"https://github.com/owncast/owncast/releases/download/v0.0.7/owncast-0.0.7-linux-64bit.zip"
|
||
|
"https://github.com/owncast/owncast/releases/download/v0.0.8/owncast-0.0.8-linux-64bit.zip"
|
||
|
"https://github.com/owncast/owncast/releases/download/v0.0.9/owncast-0.0.9-linux-64bit.zip"
|
||
|
"https://github.com/owncast/owncast/releases/download/v0.0.10/owncast-0.0.10-linux-64bit.zip"
|
||
|
"https://github.com/owncast/owncast/releases/download/v0.0.11/owncast-0.0.11-linux-64bit.zip"
|
||
|
"https://github.com/owncast/owncast/releases/download/v0.0.12/owncast-0.0.12-linux-64bit.zip"
|
||
|
"https://github.com/owncast/owncast/releases/download/v0.0.13/owncast-0.0.13-linux-64bit.zip"
|
||
|
)
|
||
|
|
||
|
echo "--------------------------------------------"
|
||
|
echo "Owncast releases upgrade test."
|
||
|
echo "Will download ${#releases[@]} releases plus the development branch."
|
||
|
echo "Please wait, as this will take a while."
|
||
|
printf "\n"
|
||
|
|
||
|
rm -rf releases
|
||
|
rm -rf owncast
|
||
|
rm -rf src
|
||
|
|
||
|
mkdir -p releases
|
||
|
mkdir -p src
|
||
|
|
||
|
download_release() {
|
||
|
url=$1
|
||
|
|
||
|
echo "--------------------------------------------"
|
||
|
echo "Downloading $url"
|
||
|
|
||
|
zipfile="releases/$(basename "$url")"
|
||
|
curl -sL "${url}" --output "${zipfile}"
|
||
|
}
|
||
|
|
||
|
test_release() {
|
||
|
pushd ./owncast >>/dev/null || exit
|
||
|
timeout --preserve-status 10 ./owncast
|
||
|
popd >>/dev/null || exit
|
||
|
}
|
||
|
|
||
|
build_development() {
|
||
|
echo "Building test release from current development branch..."
|
||
|
cd src || exit
|
||
|
git clone https://github.com/owncast/owncast
|
||
|
cd owncast || exit
|
||
|
earthly +package --platform="linux/amd64"
|
||
|
mv dist/owncast-develop-linux-64bit.zip ../../releases/owncast-develop-linux-64bit.zip
|
||
|
cd ../..
|
||
|
}
|
||
|
|
||
|
unzip_release() {
|
||
|
zipfile="releases/$(basename "$1")"
|
||
|
unzip -o "${zipfile}" -d "owncast" >>/dev/null
|
||
|
}
|
||
|
|
||
|
# Test all the releases in a row
|
||
|
for release in "${releases[@]}"; do
|
||
|
if [ ! -f "releases/$(basename "$1")" ]; then
|
||
|
download_release "$release"
|
||
|
fi
|
||
|
|
||
|
unzip_release "$(basename "$release")"
|
||
|
test_release
|
||
|
done
|
||
|
|
||
|
# # Build and run the latest release
|
||
|
build_development
|
||
|
unzip_release owncast-develop-linux-64bit.zip
|
||
|
test_release
|
||
|
|
||
|
# Test jumping from the first release to the development release
|
||
|
rm -rf owncast
|
||
|
|
||
|
if [ ! -f "releases/$(basename "${releases[0]}")" ]; then
|
||
|
download_release "${releases[0]}"
|
||
|
fi
|
||
|
unzip_release "$(basename "${releases[0]}")"
|
||
|
test_release
|
||
|
echo "--------------------------------------------"
|
||
|
echo "Testing upgrade from the first release to the development branch."
|
||
|
printf "\n"
|
||
|
|
||
|
if [ ! -f "releases/owncast-develop-linux-64bit.zip" ]; then
|
||
|
build_development
|
||
|
fi
|
||
|
unzip_release owncast-develop-linux-64bit.zip
|
||
|
test_release
|
||
|
|
||
|
echo "Done."
|