Update .gitea/actions/generate-previews/action.yml
This commit is contained in:
@@ -14,6 +14,24 @@ runs:
|
|||||||
run: |
|
run: |
|
||||||
echo "[Danser Job Started]"
|
echo "[Danser Job Started]"
|
||||||
|
|
||||||
|
retry() {
|
||||||
|
local n=1
|
||||||
|
local max=5
|
||||||
|
local delay=2
|
||||||
|
while true; do
|
||||||
|
"$@" && break || {
|
||||||
|
if [[ $n -lt $max ]]; then
|
||||||
|
echo "Attempt $n failed. Retrying in $delay seconds..."
|
||||||
|
sleep $delay
|
||||||
|
((n++))
|
||||||
|
else
|
||||||
|
echo "Attempt $n failed. No more retries left."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
if [ -z "${{ inputs.changed_skins_file }}" ] || [ ! -s "${{ inputs.changed_skins_file }}" ]; then
|
if [ -z "${{ inputs.changed_skins_file }}" ] || [ ! -s "${{ inputs.changed_skins_file }}" ]; then
|
||||||
echo "No skins changed. Skipping generation."
|
echo "No skins changed. Skipping generation."
|
||||||
exit 0
|
exit 0
|
||||||
@@ -41,7 +59,7 @@ runs:
|
|||||||
LOGFILE="/tmp/danser_log_$INDEX.txt"
|
LOGFILE="/tmp/danser_log_$INDEX.txt"
|
||||||
|
|
||||||
echo " → Generating video..."
|
echo " → Generating video..."
|
||||||
if ! xvfb-run -a "$DANSER_DIR/danser-cli" \
|
if ! retry xvfb-run -a "$DANSER_DIR/danser-cli" \
|
||||||
-replay "$GAMEPLAY_REPLAY_PATH" -record -skip -start=300 -end=307 -noupdatecheck \
|
-replay "$GAMEPLAY_REPLAY_PATH" -record -skip -start=300 -end=307 -noupdatecheck \
|
||||||
-out="$SKIN_NAME" -skin="$SKIN_NAME" -settings="skinhub" >"$LOGFILE" 2>&1; then
|
-out="$SKIN_NAME" -skin="$SKIN_NAME" -settings="skinhub" >"$LOGFILE" 2>&1; then
|
||||||
echo " ✖ Video failed for $SKIN_NAME"; cat "$LOGFILE"; INDEX=$((INDEX+1)); continue
|
echo " ✖ Video failed for $SKIN_NAME"; cat "$LOGFILE"; INDEX=$((INDEX+1)); continue
|
||||||
@@ -49,12 +67,14 @@ runs:
|
|||||||
|
|
||||||
if [ -f "$DANSER_VIDEO_DIR/$SKIN_NAME.mp4" ]; then
|
if [ -f "$DANSER_VIDEO_DIR/$SKIN_NAME.mp4" ]; then
|
||||||
echo " → Trimming MP4 with ffmpeg..."
|
echo " → Trimming MP4 with ffmpeg..."
|
||||||
ffmpeg -hide_banner -loglevel error \
|
if ! retry ffmpeg -hide_banner -loglevel error \
|
||||||
-ss 5 -t 6.5 \
|
-ss 5 -t 6.5 \
|
||||||
-i "$DANSER_VIDEO_DIR/$SKIN_NAME.mp4" \
|
-i "$DANSER_VIDEO_DIR/$SKIN_NAME.mp4" \
|
||||||
-c:v h264_nvenc -preset fast \
|
-c:v h264_nvenc -preset fast \
|
||||||
-c:a aac -b:a 128k \
|
-c:a aac -b:a 128k \
|
||||||
"$DANSER_VIDEO_DIR/${SKIN_NAME}_trimmed.mp4"
|
"$DANSER_VIDEO_DIR/${SKIN_NAME}_trimmed.mp4"; then
|
||||||
|
echo " ✖ ffmpeg trimming failed for $SKIN_NAME"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -f "$DANSER_VIDEO_DIR/${SKIN_NAME}_trimmed.mp4" ]; then
|
if [ -f "$DANSER_VIDEO_DIR/${SKIN_NAME}_trimmed.mp4" ]; then
|
||||||
mv "$DANSER_VIDEO_DIR/${SKIN_NAME}_trimmed.mp4" "$DANSER_VIDEO_DIR/$SKIN_NAME.mp4"
|
mv "$DANSER_VIDEO_DIR/${SKIN_NAME}_trimmed.mp4" "$DANSER_VIDEO_DIR/$SKIN_NAME.mp4"
|
||||||
@@ -62,14 +82,14 @@ runs:
|
|||||||
mv "$DANSER_VIDEO_DIR/$SKIN_NAME.mp4" "$OUT_VIDEO_DIR/$SKIN_NAME.mp4"
|
mv "$DANSER_VIDEO_DIR/$SKIN_NAME.mp4" "$OUT_VIDEO_DIR/$SKIN_NAME.mp4"
|
||||||
echo " ✓ Trimmed MP4 moved to $OUT_VIDEO_DIR/"
|
echo " ✓ Trimmed MP4 moved to $OUT_VIDEO_DIR/"
|
||||||
else
|
else
|
||||||
echo " ✖ ffmpeg trimming failed for $SKIN_NAME"
|
echo " ✖ No trimmed MP4 created for $SKIN_NAME"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo " ✖ No MP4 found for $SKIN_NAME"
|
echo " ✖ No MP4 found for $SKIN_NAME"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo " → Taking screenshot..."
|
echo " → Taking screenshot..."
|
||||||
if ! xvfb-run -a "$DANSER_DIR/danser-cli" \
|
if ! retry xvfb-run -a "$DANSER_DIR/danser-cli" \
|
||||||
-replay "$PANEL_REPLAY_PATH" -skip -settings="skinhub" -noupdatecheck -ss 28 \
|
-replay "$PANEL_REPLAY_PATH" -skip -settings="skinhub" -noupdatecheck -ss 28 \
|
||||||
-out="$SKIN_NAME" -skin="$SKIN_NAME" >>"$LOGFILE" 2>&1; then
|
-out="$SKIN_NAME" -skin="$SKIN_NAME" >>"$LOGFILE" 2>&1; then
|
||||||
echo " ✖ Screenshot failed for $SKIN_NAME"; cat "$LOGFILE"; INDEX=$((INDEX+1)); continue
|
echo " ✖ Screenshot failed for $SKIN_NAME"; cat "$LOGFILE"; INDEX=$((INDEX+1)); continue
|
||||||
@@ -84,7 +104,7 @@ runs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo " → Taking thumbnail screenshot..."
|
echo " → Taking thumbnail screenshot..."
|
||||||
if ! xvfb-run -a "$DANSER_DIR/danser-cli" \
|
if ! retry xvfb-run -a "$DANSER_DIR/danser-cli" \
|
||||||
-replay "$THUMBNAIL_REPLAY_PATH" -skip -settings="skinhub" -noupdatecheck -ss 1.3 \
|
-replay "$THUMBNAIL_REPLAY_PATH" -skip -settings="skinhub" -noupdatecheck -ss 1.3 \
|
||||||
-out="${SKIN_NAME}_thumb" -skin="$SKIN_NAME" >>"$LOGFILE" 2>&1; then
|
-out="${SKIN_NAME}_thumb" -skin="$SKIN_NAME" >>"$LOGFILE" 2>&1; then
|
||||||
echo " ✖ Thumbnail screenshot failed for $SKIN_NAME"; cat "$LOGFILE"; INDEX=$((INDEX+1)); continue
|
echo " ✖ Thumbnail screenshot failed for $SKIN_NAME"; cat "$LOGFILE"; INDEX=$((INDEX+1)); continue
|
||||||
|
|||||||
Reference in New Issue
Block a user