From 74404d3e39affffa3812f572f171687424dddc18 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 9 Dec 2025 07:13:48 -0500 Subject: [PATCH] Changing detection steps since working with single Compose file. --- .gitea/workflows/pr-docker-deploy.yml | 74 +++---------------------- .gitea/workflows/renovate-pr-deploy.yml | 2 +- 2 files changed, 9 insertions(+), 67 deletions(-) diff --git a/.gitea/workflows/pr-docker-deploy.yml b/.gitea/workflows/pr-docker-deploy.yml index 07089c2..4d28946 100644 --- a/.gitea/workflows/pr-docker-deploy.yml +++ b/.gitea/workflows/pr-docker-deploy.yml @@ -73,70 +73,27 @@ jobs: id: detect_services run: | echo "Getting services from main and ${{ github.ref_name }}" - - # Dynamically find all docker-compose YAML files (root + compose folder) - COMPOSE_FILES=($(find . -maxdepth 2 -type f -name 'docker-compose*.yml' | sort)) - - echo "Found Compose files:" - printf '%s\n' "${COMPOSE_FILES[@]}" - - # Temp files to store all services - touch services_main_all.txt services_head_all.txt - - for f in "${COMPOSE_FILES[@]}"; do - echo "Processing $f" - - # Create a safe filename by replacing slashes with underscores - safe_f=$(echo "$f" | sed 's|[./]|_|g') - - # Fetch main version - git show origin/main:"$f" > "main_${safe_f}" 2>/dev/null || touch "main_${safe_f}" - cp "$f" "head_${safe_f}" - - # Extract services and append to global list - yq '.services | keys | .[]' "main_${safe_f}" >> services_main_all.txt 2>/dev/null || true - yq '.services | keys | .[]' "head_${safe_f}" >> services_head_all.txt 2>/dev/null || true - done - - # Sort and deduplicate - sort -u services_main_all.txt -o services_main_all.txt - sort -u services_head_all.txt -o services_head_all.txt + yq '.services | keys | .[]' docker-compose-main.yml | sort > services_main.txt + yq '.services | keys | .[]' docker-compose-head.yml | sort > services_head.txt echo "Creating list of modified services..." touch service_changes.txt - # Added services - comm -13 services_main_all.txt services_head_all.txt | while read service; do + comm -13 services_main.txt services_head.txt | while read service; do echo "$service: added" >> service_changes.txt done - # Modified services (parallelized) - comm -12 services_main_all.txt services_head_all.txt | xargs -n1 -P4 -I{} bash -c ' - service="{}" - modified=0 - for f in "${COMPOSE_FILES[@]}"; do - safe_f=$(echo "$f" | sed "s|[./]|_|g") - yq ".services[\"$service\"]" "main_${safe_f}" > tmp_main.yml 2>/dev/null || continue - yq ".services[\"$service\"]" "head_${safe_f}" > tmp_head.yml 2>/dev/null || continue - if ! diff -q tmp_main.yml tmp_head.yml > /dev/null; then - modified=1 - break - fi - done - if [[ $modified -eq 1 ]]; then + comm -12 services_main.txt services_head.txt | while read service; do + yq ".services[\"$service\"]" docker-compose-main.yml > tmp_main.yml + yq ".services[\"$service\"]" docker-compose-head.yml > tmp_head.yml + if ! diff -q tmp_main.yml tmp_head.yml > /dev/null; then echo "$service: modified" >> service_changes.txt fi - ' + done echo "Detected service changes:" cat service_changes.txt - if [[ -z $(cat service_changes.txt) ]]; then - echo "watchtower" > service_changes.txt - echo "Placeholder:" - cat service_changes.txt - fi - mod_svcs=$(cut -d':' -f1 service_changes.txt | sort | uniq | tr '\n' ' ' | sed 's/ *$//') echo "docker_svc_list<> "$GITHUB_OUTPUT" echo "$mod_svcs" >> "$GITHUB_OUTPUT" @@ -199,21 +156,6 @@ jobs: notification_title: "GITEA: Docker Compose Dry Run @ Benedikta" notification_message: "Starting Docker Compose dry run..." - - name: Get list of Compose files - id: compose_file_list - run: | - compose_list=$(find . -type f -name "docker-compose*.yml" \ - -a ! -name "*windows*" \ - -a ! -name "*gui*" \ - -a ! -name "*macos*" \ - -a ! -name "*hivemind*" \ - -a ! -name "*server*" \ - -a ! -name "*raspberrypi*" \ - | sed -e ':a;N;$!ba;s/[\r\n]/ /g') - - echo "compose_list=$compose_list" >> "$GITHUB_OUTPUT" - echo "Compose files: $compose_list" - - name: Generate .env from Hashicorp Vault uses: https://git.trez.wtf/Trez/hc-vault-env@main with: diff --git a/.gitea/workflows/renovate-pr-deploy.yml b/.gitea/workflows/renovate-pr-deploy.yml index 5e46f6e..5e90591 100644 --- a/.gitea/workflows/renovate-pr-deploy.yml +++ b/.gitea/workflows/renovate-pr-deploy.yml @@ -129,7 +129,7 @@ jobs: file: docker-compose.yml name: "ultima" host: 192.168.1.248 - user: pi + user: charish ssh_key: ${{ secrets.RUNNER_SSH_PRIVATE_KEY }} args: --remove-orphans -d ${{ needs.generate-service-list.outputs.svc_deploy_list }} env_file: ".env"