You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
2.9 KiB
99 lines
2.9 KiB
#!/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."
|
|
|