Change detection modification.
This commit is contained in:
@@ -82,7 +82,7 @@ jobs:
|
|||||||
yq '.services | keys | .[]' docker-compose-main.yml | sort > services_main.txt
|
yq '.services | keys | .[]' docker-compose-main.yml | sort > services_main.txt
|
||||||
yq '.services | keys | .[]' docker-compose-head.yml | sort > services_head.txt
|
yq '.services | keys | .[]' docker-compose-head.yml | sort > services_head.txt
|
||||||
|
|
||||||
echo "Creating list of modified services..."
|
echo "Creating list of service changes..."
|
||||||
touch service_changes.txt
|
touch service_changes.txt
|
||||||
|
|
||||||
# Detect newly added services
|
# Detect newly added services
|
||||||
@@ -90,6 +90,11 @@ jobs:
|
|||||||
[ -n "$service" ] && echo "$service: added" >> service_changes.txt
|
[ -n "$service" ] && echo "$service: added" >> service_changes.txt
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Detect removed services
|
||||||
|
comm -23 services_main.txt services_head.txt | while read service; do
|
||||||
|
[ -n "$service" ] && echo "$service: removed" >> service_changes.txt
|
||||||
|
done
|
||||||
|
|
||||||
# Detect modified services
|
# Detect modified services
|
||||||
comm -12 services_main.txt services_head.txt | while read service; do
|
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-main.yml > tmp_main.yml
|
||||||
@@ -102,16 +107,20 @@ jobs:
|
|||||||
echo "Detected service changes:"
|
echo "Detected service changes:"
|
||||||
cat service_changes.txt || echo "None"
|
cat service_changes.txt || echo "None"
|
||||||
|
|
||||||
# Gather list of modified/added services
|
# Separate categories
|
||||||
mod_svcs=$(cut -d':' -f1 service_changes.txt | sort | uniq)
|
added_svcs=$(grep -E ': added' service_changes.txt | cut -d':' -f1 | sort | uniq)
|
||||||
|
modified_svcs=$(grep -E ': modified' service_changes.txt | cut -d':' -f1 | sort | uniq)
|
||||||
|
removed_svcs=$(grep -E ': removed' service_changes.txt | cut -d':' -f1 | sort | uniq)
|
||||||
|
|
||||||
|
# Gather list of modified/added services (ignore removed for build/test)
|
||||||
|
mod_svcs=$( (echo "$added_svcs"; echo "$modified_svcs") | tr ' ' '\n' | sort -u | grep -v '^$' || true)
|
||||||
|
|
||||||
if [ -z "$mod_svcs" ]; then
|
if [ -z "$mod_svcs" ]; then
|
||||||
echo "No modified or added services detected."
|
echo "No modified or added services detected."
|
||||||
echo "docker_svc_list<<EOF" >> "$GITHUB_OUTPUT"
|
echo "docker_svc_list<<EOF" >> "$GITHUB_OUTPUT"
|
||||||
echo "" >> "$GITHUB_OUTPUT"
|
echo "" >> "$GITHUB_OUTPUT"
|
||||||
echo "EOF" >> "$GITHUB_OUTPUT"
|
echo "EOF" >> "$GITHUB_OUTPUT"
|
||||||
exit 0
|
else
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Modified/added services:"
|
echo "Modified/added services:"
|
||||||
echo "$mod_svcs"
|
echo "$mod_svcs"
|
||||||
|
|
||||||
@@ -136,10 +145,28 @@ jobs:
|
|||||||
echo "docker_svc_list<<EOF" >> "$GITHUB_OUTPUT"
|
echo "docker_svc_list<<EOF" >> "$GITHUB_OUTPUT"
|
||||||
echo "$all_svcs" >> "$GITHUB_OUTPUT"
|
echo "$all_svcs" >> "$GITHUB_OUTPUT"
|
||||||
echo "EOF" >> "$GITHUB_OUTPUT"
|
echo "EOF" >> "$GITHUB_OUTPUT"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Output removed services separately
|
||||||
|
echo "Removed services:"
|
||||||
|
echo "${removed_svcs:-None}"
|
||||||
|
echo "removed_svc_list<<EOF" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "$removed_svcs" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "EOF" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
# Generate Markdown summary
|
||||||
|
{
|
||||||
|
echo "## 🧩 Service Change Summary"
|
||||||
|
echo ""
|
||||||
|
echo "| Change Type | Services |"
|
||||||
|
echo "|--------------|-----------|"
|
||||||
|
echo "| 🟢 **Added** | ${added_svcs:-None} |"
|
||||||
|
echo "| 🟡 **Modified** | ${modified_svcs:-None} |"
|
||||||
|
echo "| 🔴 **Removed** | ${removed_svcs:-None} |"
|
||||||
|
echo ""
|
||||||
|
echo "**Detected in:** \`${{ github.ref_name }}\` vs \`main\`"
|
||||||
|
} >> "$GITHUB_STEP_SUMMARY"
|
||||||
|
|
||||||
- name: List of Services for (Re)Deployment
|
|
||||||
run: |
|
|
||||||
echo -e "${{ steps.detect_services.outputs.docker_svc_list }}"
|
|
||||||
|
|
||||||
docker-compose-dry-run:
|
docker-compose-dry-run:
|
||||||
name: Docker Compose Dry Run
|
name: Docker Compose Dry Run
|
||||||
|
|||||||
Reference in New Issue
Block a user