Configuration: How do I get the deployed endpoint address for a service?

You may have a complex script that contains several deploy tasks, each creating their own endpoint. To inform subsequent services about a previous endpoint address ContinuousPipe creates a dynamic variable using the service name. So, for example, if a service called api was created by a deploy task, then the endpoint address would become available to subsequent tasks as ${SERVICE_API_PUBLIC_ENDPOINT}.

tasks:
    infrastructure:
        deploy:
            cluster: ${CLUSTER}
            services:
                backend:
                    specification:
                        source:
                            image: ${IMAGE_PATH_BACKEND}

    application:
        deploy:
            cluster: ${CLUSTER}
            services:
                frontend:
                    specification:
                        source:
                            image: ${IMAGE_PATH_FRONTEND}
                        environment_variables:
                            - name: BACKEND_ENDPOINT
                              value: ${SERVICE_BACKEND_PUBLIC_ENDPOINT}

This configuration defines an initial deploy task that creates a backend service. The second deploy task creates a frontend service that passes the endpoint address of the backend service as an environment variable BACKEND_ENDPOINT using the dynamic variable ${SERVICE_BACKEND_PUBLIC_ENDPOINT} as the value.

Additionally, the value of CLUSTER, IMAGE_PATH_BACKEND and IMAGE_PATH_FRONTEND are being passed in as variables - these need to be set on the configuration page for the flow in the ContinuousPipe console.