Update .gitea/workflows/ci.yml

This commit is contained in:
Arlind
2025-06-11 12:47:24 +02:00
parent daf400a4c6
commit e480066087

View File

@@ -49,9 +49,11 @@ jobs:
--env NVIDIA_VISIBLE_DEVICES=all --env NVIDIA_VISIBLE_DEVICES=all
--user 0:0 --user 0:0
steps: steps:
- name: Checkout Repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
fetch-depth: 0
tags: true
token: ${{ secrets.TOKEN }} token: ${{ secrets.TOKEN }}
- name: Detect Changed Skin Directories - name: Detect Changed Skin Directories
@@ -68,26 +70,40 @@ jobs:
echo "→ Force rebuild flag: $force_rebuild" echo "→ Force rebuild flag: $force_rebuild"
if [ "$force_rebuild" = "true" ]; then if [[ "$force_rebuild" == "true" ]]; then
echo "→ Force rebuild is enabled. Finding all skin directories..." echo "→ Force rebuild is enabled. Finding all skin directories..."
mapfile -t skins < <(find Skins -mindepth 1 -maxdepth 1 -type d | sed 's|^Skins/||' | sort) mapfile -t skins < <(
find Skins -mindepth 1 -maxdepth 1 -type d \
| sed 's|^Skins/||'
)
echo " ✓ Found ${#skins[@]} skin directories" echo " ✓ Found ${#skins[@]} skin directories"
else else
echo "→ Force rebuild is disabled. Finding latest git tag..." echo "→ Force rebuild is disabled. Finding latest git tag..."
latest_tag=$(git tag --sort=-creatordate | head -n 1 || true) latest_tag=$(git tag --sort=-creatordate | head -n 1 || true)
if [ -n "$latest_tag" ]; then
if [[ -n "$latest_tag" ]]; then
echo "→ Latest tag found: $latest_tag" echo "→ Latest tag found: $latest_tag"
echo "→ Finding added/modified skins since $latest_tag..." echo "→ Finding added/modified skins since $latest_tag..."
mapfile -t skins < <( mapfile -t skins < <(
git diff --name-only --diff-filter=AM "$latest_tag" HEAD | git diff --name-only -z --diff-filter=AM "$latest_tag" HEAD \
grep '^Skins/' | sed -E 's#^Skins/([^/]+).*#\1#' | sort -u | while IFS= read -r -d '' file; do
if [[ $file == Skins/* ]]; then
echo "${file#Skins/}" | cut -d/ -f1
fi
done
) )
echo " ✓ Found ${#skins[@]} added/modified skins" echo " ✓ Found ${#skins[@]} added/modified skins"
echo "→ Finding deleted skins since $latest_tag..." echo "→ Finding deleted skins since $latest_tag..."
mapfile -t deleted_skins < <( mapfile -t deleted_skins < <(
git diff --name-only --diff-filter=D "$latest_tag" HEAD | git diff --name-only -z --diff-filter=D "$latest_tag" HEAD \
grep '^Skins/' | sed -E 's#^Skins/([^/]+).*#\1#' | sort -u | while IFS= read -r -d '' file; do
if [[ $file == Skins/* ]]; then
echo "${file#Skins/}" | cut -d/ -f1
fi
done
) )
if [ "${#deleted_skins[@]}" -gt 0 ]; then if [ "${#deleted_skins[@]}" -gt 0 ]; then
for d in "${deleted_skins[@]}"; do for d in "${deleted_skins[@]}"; do
@@ -99,7 +115,10 @@ jobs:
else else
echo "→ No tag found. Falling back to finding all skin directories..." echo "→ No tag found. Falling back to finding all skin directories..."
mapfile -t skins < <(find Skins -mindepth 1 -maxdepth 1 -type d | sed 's|^Skins/||' | sort) mapfile -t skins < <(
find Skins -mindepth 1 -maxdepth 1 -type d \
| sed 's|^Skins/||'
)
echo " ✓ Found ${#skins[@]} skin directories" echo " ✓ Found ${#skins[@]} skin directories"
fi fi
fi fi
@@ -185,7 +204,6 @@ jobs:
shell: bash shell: bash
run: | run: |
echo "Computing new tag..." echo "Computing new tag..."
git fetch --tags
latest_tag=$(git describe --tags $(git rev-list --tags --max-count=1) 2>/dev/null || echo "") latest_tag=$(git describe --tags $(git rev-list --tags --max-count=1) 2>/dev/null || echo "")
if [ -z "$latest_tag" ]; then if [ -z "$latest_tag" ]; then
new_tag="v1.0.0" new_tag="v1.0.0"