owncast/test/automated/hls/run.sh
Meisam 64d3c37fb2
improve stream testing script (#2549)
* merge testContent.sh into ocContent.sh

* detect ffmpeg

ffmpeg or ffmpeg.exe in path, current dir, or parent dir

* use ocTestStream in api test

* enable verbose logging for api tests

* log ffmpeg version

* change ffmpeg lookup order

* set path properly for using the local ffmpeg

* rm double space from transcoder error logs

* update tests for new video stream

do not test bitrate

* set test stream target to 127.0.0.1

* log ffmpeg path

* update ffmpeg to v4.4.1

* improve logs

* fix ffmpeg installer script

* fix api test runner

* fix logs

* install fonts

* cleanup

* use ocTestStream.sh for all automated tests

* cleanup ocTestStream.sh

* cleanup test/automated/hls/run.sh

* Fix misspell

* fix ffmpeg installer in automated test runners

* spell fix

* cleanup script

* rev quick api tests

* cleanup tmp paths properly in automated tests

* rm unused ffmpeg package

* cleanup

* fix s3 test

* cache ffmpeg bin for automated tests

* shellcheck allow source

* rm missplaced file if backup fails

* use ffmpeg full path

* set lookup path for shellcheck
2023-01-10 18:50:32 -08:00

72 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
set -e
source ../tools.sh
function update_storage_config() {
echo "Configuring external storage to use ${S3_BUCKET}..."
# Hard coded to admin:abc123 for auth
curl 'http://localhost:8080/api/admin/config/s3' \
-H 'Authorization: Basic YWRtaW46YWJjMTIz' \
--data-raw "{\"value\":{\"accessKey\":\"${S3_ACCESS_KEY}\",\"acl\":\"\",\"bucket\":\"${S3_BUCKET}\",\"enabled\":true,\"endpoint\":\"${S3_ENDPOINT}\",\"region\":\"${S3_REGION}\",\"secret\":\"${S3_SECRET}\",\"servingEndpoint\":\"\"}}"
}
TEMP_DB=$(mktemp)
# Install the node test framework
npm install --silent >/dev/null
ffmpegInstall
pushd ../../.. >/dev/null
# Build and run owncast from source
go build -o owncast main.go
./owncast -database "$TEMP_DB" &
SERVER_PID=$!
popd >/dev/null
sleep 5
# Start the stream.
../../ocTestStream.sh &
STREAMING_CLIENT=$!
function finish {
echo "Cleaning up..."
kill $SERVER_PID $STREAMING_CLIENT
rm -fr "$TEMP_DB" "$FFMPEG_PATH"
}
trap finish EXIT
echo "Waiting..."
sleep 13
# Run tests against a fresh install with no settings.
npm test
# Determine if we should continue testing with S3 configuration.
if [[ -z "${S3_BUCKET}" ]]; then
echo "No S3 configuration set"
exit 0
fi
# Kill the stream.
kill $STREAMING_CLIENT
sleep 5
# Update the server config to use S3 for storage.
update_storage_config
# start the stream.
../../ocTestStream.sh &
STREAMING_CLIENT=$!
echo "Waiting..."
sleep 13
# Re-run the HLS test against the external storage configuration.
npm test