From 795d763f868d24d2bd24029608b99f3a31b5a231 Mon Sep 17 00:00:00 2001 From: vdelendik Date: Tue, 4 Jun 2024 19:01:12 +0300 Subject: [PATCH] #400: integrated video recording logging into the appium TASK_LOG --- Dockerfile | 2 -- entrypoint.sh | 18 +++++++----------- files/start-capture-artifacts.sh | 2 +- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/Dockerfile b/Dockerfile index e1e2837..5a50136 100644 --- a/Dockerfile +++ b/Dockerfile @@ -52,8 +52,6 @@ ENV LOG_LEVEL=info ENV LOG_DIR=/tmp/log ENV TASK_LOG=/tmp/log/appium.log ENV LOG_FILE=session.log -ENV VIDEO_LOG=/tmp/log/appium-video.log -ENV VIDEO_LOG_FILE=video.log # iOS envs ENV WDA_HOST=connector diff --git a/entrypoint.sh b/entrypoint.sh index c6b3218..929523a 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -95,6 +95,12 @@ share() { # unique folder to collect all artifacts for uploading mkdir ${LOG_DIR}/${artifactId} + stop_ffmpeg $artifactId + echo "[info] [Share] Video recording file:" + ls -lah /tmp/${artifactId}.mp4 + + mv /tmp/${artifactId}.mp4 ${LOG_DIR}/${artifactId}/video.mp4 + cp ${TASK_LOG} ${LOG_DIR}/${artifactId}/${LOG_FILE} # do not move otherwise in global loop we should add extra verification on file presense > ${TASK_LOG} @@ -105,15 +111,9 @@ share() { > ${WDA_LOG_FILE} fi - stop_ffmpeg $artifactId - echo "[info] [Share] Video recording file:" - ls -lah /tmp/${artifactId}.mp4 - - mv /tmp/${artifactId}.mp4 ${LOG_DIR}/${artifactId}/video.mp4 - # share all the rest custom reports from LOG_DIR into artifactId subfolder for file in ${LOG_DIR}/*; do - if [ -f "$file" ] && [ -s "$file" ] && [ "$file" != "${TASK_LOG}" ] && [ "$file" != "${VIDEO_LOG}" ] && [ "$file" != "${WDA_LOG_FILE}" ]; then + if [ -f "$file" ] && [ -s "$file" ] && [ "$file" != "${TASK_LOG}" ] && [ "$file" != "${WDA_LOG_FILE}" ]; then echo "[info] [Share] Sharing file: $file" # to avoid extra publishing as launch artifact for driver sessions mv $file ${LOG_DIR}/${artifactId}/ @@ -123,10 +123,6 @@ share() { # register artifactId info to be able to parse by uploader echo "artifactId=$artifactId" > ${LOG_DIR}/.artifact-$artifactId - # share video log file - cp ${VIDEO_LOG} ${LOG_DIR}/${artifactId}/${VIDEO_LOG_FILE} - > ${VIDEO_LOG} - # remove lock file (for other threads) when artifacts are shared for uploader rm -f ${LOG_DIR}/.sharing-artifact-$artifactId # remove lock file (for uploader) when artifacts are shared for uploader diff --git a/files/start-capture-artifacts.sh b/files/start-capture-artifacts.sh index 31de84d..a82f7de 100755 --- a/files/start-capture-artifacts.sh +++ b/files/start-capture-artifacts.sh @@ -14,6 +14,6 @@ echo -n "on" | nc ${BROADCAST_HOST} ${BROADCAST_PORT} -w 0 -v echo "[info] [CaptureArtifacts] generating video file ${sessionId}.mp4..." # you can add `-v trace` to enable verbose mode logs -ffmpeg -f mjpeg -r 10 -i tcp://${BROADCAST_HOST}:${BROADCAST_PORT} -vf scale="-2:720" -vcodec libx264 -movflags +frag_keyframe+separate_moof+omit_tfhd_offset+empty_moov ${FFMPEG_OPTS} -y /tmp/${sessionId}.mp4 > ${VIDEO_LOG} 2>&1 & +ffmpeg -f mjpeg -r 10 -i tcp://${BROADCAST_HOST}:${BROADCAST_PORT} -vf scale="-2:720" -vcodec libx264 -movflags +frag_keyframe+separate_moof+omit_tfhd_offset+empty_moov ${FFMPEG_OPTS} -y /tmp/${sessionId}.mp4 & exit 0