...
This commit is contained in:
@@ -53,6 +53,11 @@ jobs:
|
|||||||
|
|
||||||
- name: Generate combined service list
|
- name: Generate combined service list
|
||||||
run: |
|
run: |
|
||||||
|
# Load environment variables from .env
|
||||||
|
if [ -f ".env" ]; then
|
||||||
|
export $(grep -v '^#' .env | xargs)
|
||||||
|
fi
|
||||||
|
|
||||||
COMPOSE_FILES=$(find . -type f -name "docker-compose*.yml" \
|
COMPOSE_FILES=$(find . -type f -name "docker-compose*.yml" \
|
||||||
-a ! -name "*windows*" \
|
-a ! -name "*windows*" \
|
||||||
-a ! -name "*gui*" \
|
-a ! -name "*gui*" \
|
||||||
@@ -69,9 +74,15 @@ jobs:
|
|||||||
echo "Processing combined Compose files:"
|
echo "Processing combined Compose files:"
|
||||||
echo "$COMPOSE_FILES"
|
echo "$COMPOSE_FILES"
|
||||||
|
|
||||||
# Process all compose files together so anchors and merges resolve across files
|
# Replace env variables in compose files before merging
|
||||||
yq -o=json eval-all 'explode(.) | .services | to_entries | map({"service": .key, "image": .value.image})' $COMPOSE_FILES \
|
yq -o=json eval-all '
|
||||||
| jq -s add | jq 'unique_by(.service)' > services.json
|
explode(.) |
|
||||||
|
.services |= with_entries(
|
||||||
|
.value.image |= sub("\\$\\{VERSION\\}", env(VERSION) // "")
|
||||||
|
) |
|
||||||
|
.services | to_entries | map({"service": .key, "image": .value.image})
|
||||||
|
' $COMPOSE_FILES \
|
||||||
|
| jq -s add | jq 'unique_by(.service)' > services.json
|
||||||
|
|
||||||
if [ ! -s services.json ]; then
|
if [ ! -s services.json ]; then
|
||||||
echo "No services extracted. Exiting."
|
echo "No services extracted. Exiting."
|
||||||
|
|||||||
Reference in New Issue
Block a user