run.sh 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #!/bin/bash
  2. # This script will download all the releases of Owncast and test them
  3. # to ensure that upgrades work as expected. It will also test the
  4. # development branch as the final test.
  5. # It is hard coded to run under 64bit intel linux.
  6. # set -o errexit
  7. set -o pipefail
  8. releases=(
  9. "https://github.com/owncast/owncast/releases/download/v0.0.6/owncast-0.0.6-linux-64bit.zip"
  10. "https://github.com/owncast/owncast/releases/download/v0.0.7/owncast-0.0.7-linux-64bit.zip"
  11. "https://github.com/owncast/owncast/releases/download/v0.0.8/owncast-0.0.8-linux-64bit.zip"
  12. "https://github.com/owncast/owncast/releases/download/v0.0.9/owncast-0.0.9-linux-64bit.zip"
  13. "https://github.com/owncast/owncast/releases/download/v0.0.10/owncast-0.0.10-linux-64bit.zip"
  14. "https://github.com/owncast/owncast/releases/download/v0.0.11/owncast-0.0.11-linux-64bit.zip"
  15. "https://github.com/owncast/owncast/releases/download/v0.0.12/owncast-0.0.12-linux-64bit.zip"
  16. "https://github.com/owncast/owncast/releases/download/v0.0.13/owncast-0.0.13-linux-64bit.zip"
  17. )
  18. echo "--------------------------------------------"
  19. echo "Owncast releases upgrade test."
  20. echo "Will download ${#releases[@]} releases plus the development branch."
  21. echo "Please wait, as this will take a while."
  22. printf "\n"
  23. rm -rf releases
  24. rm -rf owncast
  25. rm -rf src
  26. mkdir -p releases
  27. mkdir -p src
  28. download_release() {
  29. url=$1
  30. echo "--------------------------------------------"
  31. echo "Downloading $url"
  32. zipfile="releases/$(basename "$url")"
  33. curl -sL "${url}" --output "${zipfile}"
  34. }
  35. test_release() {
  36. pushd ./owncast >>/dev/null || exit
  37. timeout --preserve-status 10 ./owncast
  38. popd >>/dev/null || exit
  39. }
  40. build_development() {
  41. echo "Building test release from current development branch..."
  42. cd src || exit
  43. git clone https://github.com/owncast/owncast
  44. cd owncast || exit
  45. earthly +package --platform="linux/amd64"
  46. mv dist/owncast-develop-linux-64bit.zip ../../releases/owncast-develop-linux-64bit.zip
  47. cd ../..
  48. }
  49. unzip_release() {
  50. zipfile="releases/$(basename "$1")"
  51. unzip -o "${zipfile}" -d "owncast" >>/dev/null
  52. }
  53. # Test all the releases in a row
  54. for release in "${releases[@]}"; do
  55. if [ ! -f "releases/$(basename "$1")" ]; then
  56. download_release "$release"
  57. fi
  58. unzip_release "$(basename "$release")"
  59. test_release
  60. done
  61. # # Build and run the latest release
  62. build_development
  63. unzip_release owncast-develop-linux-64bit.zip
  64. test_release
  65. # Test jumping from the first release to the development release
  66. rm -rf owncast
  67. if [ ! -f "releases/$(basename "${releases[0]}")" ]; then
  68. download_release "${releases[0]}"
  69. fi
  70. unzip_release "$(basename "${releases[0]}")"
  71. test_release
  72. echo "--------------------------------------------"
  73. echo "Testing upgrade from the first release to the development branch."
  74. printf "\n"
  75. if [ ! -f "releases/owncast-develop-linux-64bit.zip" ]; then
  76. build_development
  77. fi
  78. unzip_release owncast-develop-linux-64bit.zip
  79. test_release
  80. echo "Done."