Update .gitea/actions/generate-previews/action.yml
This commit is contained in:
@@ -14,6 +14,24 @@ runs:
|
||||
run: |
|
||||
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
|
||||
echo "No skins changed. Skipping generation."
|
||||
exit 0
|
||||
@@ -41,7 +59,7 @@ runs:
|
||||
LOGFILE="/tmp/danser_log_$INDEX.txt"
|
||||
|
||||
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 \
|
||||
-out="$SKIN_NAME" -skin="$SKIN_NAME" -settings="skinhub" >"$LOGFILE" 2>&1; then
|
||||
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
|
||||
echo " → Trimming MP4 with ffmpeg..."
|
||||
ffmpeg -hide_banner -loglevel error \
|
||||
if ! retry ffmpeg -hide_banner -loglevel error \
|
||||
-ss 5 -t 6.5 \
|
||||
-i "$DANSER_VIDEO_DIR/$SKIN_NAME.mp4" \
|
||||
-c:v h264_nvenc -preset fast \
|
||||
-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
|
||||
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"
|
||||
echo " ✓ Trimmed MP4 moved to $OUT_VIDEO_DIR/"
|
||||
else
|
||||
echo " ✖ ffmpeg trimming failed for $SKIN_NAME"
|
||||
echo " ✖ No trimmed MP4 created for $SKIN_NAME"
|
||||
fi
|
||||
else
|
||||
echo " ✖ No MP4 found for $SKIN_NAME"
|
||||
fi
|
||||
|
||||
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 \
|
||||
-out="$SKIN_NAME" -skin="$SKIN_NAME" >>"$LOGFILE" 2>&1; then
|
||||
echo " ✖ Screenshot failed for $SKIN_NAME"; cat "$LOGFILE"; INDEX=$((INDEX+1)); continue
|
||||
@@ -84,7 +104,7 @@ runs:
|
||||
fi
|
||||
|
||||
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 \
|
||||
-out="${SKIN_NAME}_thumb" -skin="$SKIN_NAME" >>"$LOGFILE" 2>&1; then
|
||||
echo " ✖ Thumbnail screenshot failed for $SKIN_NAME"; cat "$LOGFILE"; INDEX=$((INDEX+1)); continue
|
||||
|
||||
Reference in New Issue
Block a user