#!/bin/bash
# Read Docker Compose file
compose_file="docker-compose.yml"
images=($(grep -E '^ *image:' $compose_file | awk '{print $2}' | cut -d ':' -f 1))
# Initialize multi-line variable
all_variables=()
for image in "${images[@]}"; do
# Store image name in pipeline variable
variable_name="image_${image//[^a-zA-Z0-9_]/_}"
# Set individual variable
# echo "Setting pipeline variable for $variable_name: $image"
echo "##vso[task.setvariable variable=$variable_name]$image"
# Concatenate variable assignment to multi-line variable with newline
multi_line_variable+="$variable_name: $image"$'n'
done
echo "$all_variables"
# Set multi-line variable in Azure Pipelines
# echo "Setting multi-line variable in Azure Pipelines"
echo -e "##vso[task.setvariable variable=allVariables;isOutput=true]$all_variables"
echo "allVariables:$allVariables"
but the (all variables)multiline variable are not set in the pipeline so please give me any suggestion what ever i am do is right the process is right like this thing is possible
i am expecting like this
variables:
allvariables: |
image_postgres: postgres
image_mongo: mongo
image_quay_io_keycloak_keycloak: quay.io/keycloak/keycloak
image_discovery_server: discovery-server
image_api_gateway: api-gateway
image_auth_service: auth-service
but this variable is dynamically