123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- #!/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."
|