diff --git a/.gitea/workflows/renovate-pr-deploy.yml b/.gitea/workflows/renovate-pr-deploy.yml index 4cffda39..63550c01 100644 --- a/.gitea/workflows/renovate-pr-deploy.yml +++ b/.gitea/workflows/renovate-pr-deploy.yml @@ -51,16 +51,21 @@ jobs: - name: Get changed services from docker-compose.yml id: services run: | + set -euo pipefail + git fetch origin ${{ github.event.pull_request.base.ref }} - # Extract service=image pairs from HEAD (PR merge result) + # Extract service=image pairs from HEAD (current merge commit) yq -r '.services | to_entries[] | "\(.key)=\(.value.image // "")"' docker-compose.yml \ | sort > services_head.txt # Extract service=image pairs from BASE (main branch) - git show origin/${{ github.event.pull_request.base.ref }}:docker-compose.yml \ - | yq -r '.services | to_entries[] | "\(.key)=\(.value.image // "")"' \ - | sort > services_main.txt || true + if git show origin/${{ github.event.pull_request.base.ref }}:docker-compose.yml > base.yml 2>/dev/null; then + yq -r '.services | to_entries[] | "\(.key)=\(.value.image // "")"' base.yml \ + | sort > services_main.txt + else + touch services_main.txt + fi echo "Comparing images between base and head..." : > service_changes.txt @@ -75,12 +80,11 @@ jobs: echo "Detected service changes:" cat service_changes.txt || true - mod_svcs=$(sort -u service_changes.txt | xargs) - if [ -z "$mod_svcs" ]; then - echo "docker_svc_list=" >> "$GITHUB_OUTPUT" - else - echo "docker_svc_list=$mod_svcs" >> "$GITHUB_OUTPUT" - fi + # Flatten into a single space-separated string + mod_svcs=$(sort -u service_changes.txt | xargs echo -n) + + # Export for downstream steps (safe single-line) + echo "docker_svc_list=$mod_svcs" >> "$GITHUB_OUTPUT" - name: List of Services for (Re)Deployment run: |