Files
reusable-actions/.gitea/actions/pull-lfs/action.yml
2025-10-01 15:19:55 +02:00

38 lines
1.1 KiB
YAML

name: "Pull Git LFS Objects"
description: "Pull only LFS objects for changed skins and core assets"
inputs:
changed_skins_file:
description: "Path to file containing changed skins (JSON array)"
required: false
default: ""
runs:
using: "composite"
steps:
- name: Pull Git LFS objects
shell: bash
run: |
if [ -z "${{ inputs.changed_skins_file }}" ] || [ ! -s "${{ inputs.changed_skins_file }}" ]; then
echo "No skins changed. Skipping git pull lfs."
exit 0
fi
mapfile -t skins < <(jq -r '.[]' "${{ inputs.changed_skins_file }}")
[ "${#skins[@]}" -eq 0 ] && { echo "No skins to process. Exiting."; exit 0; }
includes="src/**,export/**,media/**"
skin_includes=$(
for skin in "${skins[@]}"; do
esc=$(printf '%s' "$skin" \
| sed -e 's/\[/\\[/g' -e 's/\]/\\]/g')
printf 'Skins/%s/**\n' "$esc"
done | paste -sd ','
)
includes="$includes,$skin_includes"
echo "→ Pulling LFS objects for patterns: $includes"
git lfs pull --include="$includes"