diff --git a/.gitea/workflows/pr-cloudflare-docker-deploy.yml b/.gitea/workflows/pr-cloudflare-docker-deploy.yml index 4cb32762..e94b154f 100644 --- a/.gitea/workflows/pr-cloudflare-docker-deploy.yml +++ b/.gitea/workflows/pr-cloudflare-docker-deploy.yml @@ -85,10 +85,12 @@ jobs: echo "Creating list of modified services..." touch service_changes.txt + # Detect newly added services comm -13 services_main.txt services_head.txt | while read service; do - echo "$service: added" >> service_changes.txt + [ -n "$service" ] && echo "$service: added" >> service_changes.txt done + # Detect modified services 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 @@ -98,11 +100,41 @@ jobs: done echo "Detected service changes:" - cat service_changes.txt + cat service_changes.txt || echo "None" + # Gather list of modified/added services mod_svcs=$(cut -d':' -f1 service_changes.txt | sort | uniq) + if [ -z "$mod_svcs" ]; then + echo "No modified or added services detected." + echo "docker_svc_list<> "$GITHUB_OUTPUT" + echo "" >> "$GITHUB_OUTPUT" + echo "EOF" >> "$GITHUB_OUTPUT" + exit 0 + fi + + echo "Modified/added services:" + echo "$mod_svcs" + + # Include direct dependencies + echo "Resolving direct dependencies..." + deps_list="" + for svc in $mod_svcs; do + deps=$(yq -r ".services[\"$svc\"].depends_on | keys | .[]" docker-compose-head.yml 2>/dev/null || true) + if [ -n "$deps" ]; then + echo "$svc depends on:" + echo "$deps" + deps_list="$deps_list $deps" + fi + done + + all_svcs=$( (echo "$mod_svcs"; echo "$deps_list") | tr ' ' '\n' | sort -u) + + echo "Final service list (including direct dependencies):" + echo "$all_svcs" + + # Expose to workflow output echo "docker_svc_list<> "$GITHUB_OUTPUT" - echo "$mod_svcs" >> "$GITHUB_OUTPUT" + echo "$all_svcs" >> "$GITHUB_OUTPUT" echo "EOF" >> "$GITHUB_OUTPUT" - name: List of Services for (Re)Deployment @@ -162,6 +194,8 @@ jobs: - name: Pre-pull/build service images in parallel uses: https://git.trez.wtf/Trez/docker-select-image-pull@main + env: + DOCKER_HOST: tcp://dockerproxy:2375 with: services: ${{ env.DOCKER_SVC_LIST }} compose_profile: "rinoa-apps" @@ -362,6 +396,14 @@ jobs: HC_VAULT_PASSWORD: ${{ secrets.VAULT_GITEA_PASSWORD }} HC_VAULT_SECRETS_PATH: rinoa-docker/env + - name: Pre-pull/build service images in parallel + uses: https://git.trez.wtf/Trez/docker-select-image-pull@main + env: + DOCKER_HOST: tcp://dockerproxy:2375 + with: + services: ${{ env.DOCKER_SVC_LIST }} + compose_profile: "rinoa-apps" + - name: Docker Compose Deployment uses: hoverkraft-tech/compose-action@b716db5b717cb9b81e391fe638e5aceaa2299e43 # v2.4.0 env: diff --git a/docker-compose.yml b/docker-compose.yml index 0d0b550e..a2dce772 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6106,6 +6106,7 @@ services: - ${DOCKER_VOLUME_CONFIG}/signoz/common/otel/otel-collector-opamp-config.yaml:/etc/manager-config.yaml - ${DOCKER_VOLUME_CONFIG}/swag/log/nginx/access.log:/swag/log/nginx/access.log:ro - ${DOCKER_VOLUME_CONFIG}/swag/log/nginx/error.log:/swag/log/nginx/error.log:ro + - /var/run/docker.sock:/var/run/docker.sock:ro signoz-schema-migrator-async: <<: *signoz-db-depend image: signoz/signoz-schema-migrator:v0.129.7@sha256:721c55284b32da6af8932d1fe6939410b6f0d10da74fc666f9856fa1e1f5763b