Files
appstore/.github/workflows/renovate-app-version.sh
T
okxlin 305513a4e9 Fix Renovate version selection for multi-service apps (#4726)
Use changed primary service tags for app directory renames and keep paused Flux Panel releases pinned to 1.4.3.
2026-07-12 00:41:12 +08:00

46 lines
1.2 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
# This script renames a version directory to match the changed primary service image tag.
app_name=${1:?missing app name}
old_version=${2:?missing source version}
docker_compose_file=${3:?missing docker-compose path}
base_ref=${4:?missing base ref}
source_dir="apps/$app_name/$old_version"
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
policy_file="$script_dir/../renovate-primary-services.json"
selector="$script_dir/../scripts/renovate_app_version.py"
case "$old_version" in
latest|stable)
echo "skip: $source_dir is a rolling alias"
exit 0
;;
esac
if [[ ! -d "$source_dir" ]]; then
echo "skip: $source_dir does not exist"
exit 0
fi
trimmed_version=$(python3 "$selector" \
--app "$app_name" \
--old-version "$old_version" \
--compose "$docker_compose_file" \
--base-ref "$base_ref" \
--policy-file "$policy_file")
if [[ -z "$trimmed_version" || "$trimmed_version" == "$old_version" ]]; then
echo "skip: $source_dir already matches the selected primary image tag"
exit 0
fi
target_dir="apps/$app_name/$trimmed_version"
if [[ -e "$target_dir" ]]; then
echo "target already exists: $target_dir" >&2
exit 1
fi
mv "$source_dir" "$target_dir"