diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 900be855..d40b120f 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -13,6 +13,10 @@ on: description: 'Force rebuild all skins' required: false default: 'false' + target_skins: + description: 'Comma-separated list of skin folder names to rebuild (e.g., "Skin1,Skin2")' + required: false + default: '' env: DANSER_PATH: "/app/danser/danser-cli" @@ -81,18 +85,30 @@ jobs: readarray -t all_skins <<< "$ALL_SKINS_DIR" force_rebuild="${{ github.event.inputs.force_rebuild }}" + target_skins="${{ github.event.inputs.target_skins }}" skins=() deleted_skins=() echo "→ Force rebuild flag: $force_rebuild" + echo "→ Target skins input: $target_skins" if [[ "$force_rebuild" == "true" ]]; then echo "→ Force rebuild is enabled. Using ALL_SKINS_DIR for full list…" skins=("${all_skins[@]}") echo " ✓ Found ${#skins[@]} skin directories (from ALL_SKINS_DIR)" + elif [[ -n "$target_skins" ]]; then + echo "→ Target skins specified. Using target_skins input…" + IFS=',' read -r -a input_skins <<< "$target_skins" + for s in "${input_skins[@]}"; do + s="${s#"${s%%[![:space:]]*}"}" # trim leading whitespace + s="${s%"${s##*[![:space:]]}"}" # trim trailing whitespace + [[ -n "$s" ]] && skins+=("$s") + done + echo " ✓ Found ${#skins[@]} skin(s) from target_skins input" + else - echo "→ Force rebuild is disabled. Finding latest git tag..." + echo "→ No rebuild flags set. Finding latest git tag..." latest_tag=$(git tag --sort=-creatordate | head -n 1 || true) if [[ -n "$latest_tag" ]]; then