Reputation: 121
Following command works on bash shell but YAML parser (bitbucket-pipelines.yaml) reports it as invalid syntax
https://bitbucket-pipelines.atlassian.io/validator
- export TASK_VERSION=$(aws ecs register-task-definition --family MyTask --container-definitions "[{\"name\":\"MyContainer\",\"image\":\"1234567.dkr.ecr.us-west-1.amazonaws.com/ecs-repository:1.0.13\",\"cpu\":50,\"portMappings\": [{\"hostPort\": 80,\"containerPort\": 80,\"protocol\":\"tcp\"}],\"memory\":300}]" | jq --raw-output '.taskDefinition.revision')
Even though I have escaped all double quotes using \ char, I think [ and { are throwing it off.
Any ideas?
Upvotes: 2
Views: 5724
Reputation: 23463
I assume the line in question is part of a larger, validly structured bitbucket-pipelines.yaml file.
Try placing the script in a block scalar.
- |
export TASK_VERSION=$(aws ecs register-task-definition --family MyTask --container-definitions "[{\"name\":\"MyContainer\",\"image\":\"1234567.dkr.ecr.us-west-1.amazonaws.com/ecs-repository:1.0.13\",\"cpu\":50,\"portMappings\": [{\"hostPort\": 80,\"containerPort\": 80,\"protocol\":\"tcp\"}],\"memory\":300}]" | jq --raw-output '.taskDefinition.revision')
Upvotes: 6