Fixing service generation step in Renovate PR deploy flow.
This commit is contained in:
@@ -55,7 +55,7 @@ jobs:
|
|||||||
if git ls-tree -r origin/main --name-only | grep -q '^docker-compose.yml$'; then
|
if git ls-tree -r origin/main --name-only | grep -q '^docker-compose.yml$'; then
|
||||||
git show origin/main:docker-compose.yml > docker-compose-main.yml
|
git show origin/main:docker-compose.yml > docker-compose-main.yml
|
||||||
else
|
else
|
||||||
echo "{}" > docker-compose-main.yml
|
echo "services: {}" > docker-compose-main.yml
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cp docker-compose.yml docker-compose-head.yml
|
cp docker-compose.yml docker-compose-head.yml
|
||||||
@@ -66,34 +66,36 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
head docker-compose-main.yml
|
|
||||||
head docker-compose-head.yml
|
|
||||||
|
|
||||||
echo "Getting services from main and head"
|
echo "Getting services from main and head"
|
||||||
yq -r '.services | to_entries[] | "\(.key)=\(.value.image // "")"' docker-compose-main.yml \
|
yq '.services | keys | .[]' docker-compose-main.yml | sort > services_main.txt
|
||||||
| sort > services_main.txt
|
yq '.services | keys | .[]' docker-compose-head.yml | sort > services_head.txt
|
||||||
|
|
||||||
yq -r '.services | to_entries[] | "\(.key)=\(.value.image // "")"' docker-compose-head.yml \
|
|
||||||
| sort > services_head.txt
|
|
||||||
|
|
||||||
echo "Creating list of modified services..."
|
echo "Creating list of modified services..."
|
||||||
: > service_changes.txt
|
: > service_changes.txt
|
||||||
|
|
||||||
# Find modified services (image changes)
|
# Added services
|
||||||
comm -12 <(cut -d= -f1 services_main.txt | sort) \
|
comm -13 services_main.txt services_head.txt | while read service; do
|
||||||
<(cut -d= -f1 services_head.txt | sort) \
|
echo "$service: added" >> service_changes.txt
|
||||||
| while read service; do
|
done
|
||||||
main_image=$(grep "^$service=" services_main.txt | cut -d= -f2-)
|
|
||||||
head_image=$(grep "^$service=" services_head.txt | cut -d= -f2-)
|
# Removed services
|
||||||
if [ "$main_image" != "$head_image" ]; then
|
comm -23 services_main.txt services_head.txt | while read service; do
|
||||||
echo "$service: modified" >> service_changes.txt
|
echo "$service: removed" >> service_changes.txt
|
||||||
fi
|
done
|
||||||
done
|
|
||||||
|
# Modified services (image changes)
|
||||||
|
comm -12 services_main.txt services_head.txt | while read service; do
|
||||||
|
main_image=$(yq ".services.\"$service\".image // \"\"" docker-compose-main.yml)
|
||||||
|
head_image=$(yq ".services.\"$service\".image // \"\"" docker-compose-head.yml)
|
||||||
|
if [ "$main_image" != "$head_image" ]; then
|
||||||
|
echo "$service: modified" >> service_changes.txt
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
echo "Detected service changes:"
|
echo "Detected service changes:"
|
||||||
cat service_changes.txt || true
|
cat service_changes.txt || true
|
||||||
|
|
||||||
# Flatten into single space-separated list for GHA output
|
# Flatten into single space-separated list
|
||||||
mod_svcs=$(cut -d: -f1 service_changes.txt | sort -u | xargs echo -n)
|
mod_svcs=$(cut -d: -f1 service_changes.txt | sort -u | xargs echo -n)
|
||||||
|
|
||||||
echo "docker_svc_list=$mod_svcs" >> "$GITHUB_OUTPUT"
|
echo "docker_svc_list=$mod_svcs" >> "$GITHUB_OUTPUT"
|
||||||
|
|||||||
Reference in New Issue
Block a user