Fixing service generation step in Renovate PR deploy flow.

This commit is contained in:
2025-09-30 07:14:41 -04:00
parent 3844e537c0
commit 370da72ad6
+8 -9
View File
@@ -53,16 +53,17 @@ jobs:
run: | run: |
git fetch origin ${{ github.event.pull_request.base.ref }} git fetch origin ${{ github.event.pull_request.base.ref }}
# Extract image refs (service -> image) from base and head # Extract service=image pairs from HEAD (PR merge result)
yq -r '.services | to_entries[] | "\(.key)=\(.value.image // "")"' docker-compose.yml \ yq -r '.services | to_entries[] | "\(.key)=\(.value.image // "")"' docker-compose.yml \
| sort > services_head.txt | sort > services_head.txt
# Extract service=image pairs from BASE (main branch)
git show origin/${{ github.event.pull_request.base.ref }}:docker-compose.yml \ git show origin/${{ github.event.pull_request.base.ref }}:docker-compose.yml \
| yq -r '.services | to_entries[] | "\(.key)=\(.value.image // "")"' \ | yq -r '.services | to_entries[] | "\(.key)=\(.value.image // "")"' \
| sort > services_main.txt | sort > services_main.txt || true
echo "Comparing images between base and head..." echo "Comparing images between base and head..."
touch service_changes.txt : > service_changes.txt
while IFS== read -r svc img; do while IFS== read -r svc img; do
base_img=$(grep "^$svc=" services_main.txt | cut -d= -f2- || true) base_img=$(grep "^$svc=" services_main.txt | cut -d= -f2- || true)
@@ -74,15 +75,13 @@ jobs:
echo "Detected service changes:" echo "Detected service changes:"
cat service_changes.txt || true cat service_changes.txt || true
mod_svcs=$(sort -u service_changes.txt) mod_svcs=$(sort -u service_changes.txt | xargs)
if [ -z "$mod_svcs" ]; then if [ -z "$mod_svcs" ]; then
echo "::warning::No service image changes detected. Skipping selective deployment." echo "docker_svc_list=" >> "$GITHUB_OUTPUT"
else
echo "docker_svc_list=$mod_svcs" >> "$GITHUB_OUTPUT"
fi fi
echo "docker_svc_list<<EOF" >> "$GITHUB_OUTPUT"
echo "$mod_svcs" >> "$GITHUB_OUTPUT"
echo "EOF" >> "$GITHUB_OUTPUT"
- name: List of Services for (Re)Deployment - name: List of Services for (Re)Deployment
run: | run: |
echo -e "${{ steps.services.outputs.docker_svc_list }}" echo -e "${{ steps.services.outputs.docker_svc_list }}"