2016-10-14 4 views
0

У меня есть развертывания раздел circle.yml который выглядит следующим образом:Как заменить маркер в circle.yml команды развертывания с помощью переменной окружения

deployment: 
    default: 
    branch: [prototype, staging, production] 
    commands: 
     - docker tag clever chaliy/clever-$CIRCLE_BRANCH:latest 
     - docker push chaliy/clever-$CIRCLE_BRANCH:latest 
     - sed -i 's/clever-registry/clever-$CIRCLE_BRANCH/g' Dockerrun.aws.json 
     - cat Dockerrun.aws.json 
     - eb deploy clever-$CIRCLE_BRANCH --profile default --staged 

У меня есть Dockerrun.aws.json, где я хочу, чтобы заменить clever-registry со значением clever- + $CIRCLE_BRANCH , Замещение $ CIRCLE_BRANCH работает в первых двух команд, однако не может заменить что-либо в файле Dockerrun.aws.json :(.

Я также попытался {CIRCLE_BRANCH} синтаксис $, но эффект тот же.

Может быть есть ли другой способ заменить токен в файле? Или могут быть другие способы, как я могу заменить эту команду в circle.yml?

ответ

1

простые цитаты защищают от расширения переменных окружения. Просто защитите свое выражение (если оно должно быть защищенные) двойными котировками:

sed -i "s/clever-registry/clever-$CIRCLE_BRANCH/g" Dockerrun.aws.json 

это будет работать. В вашем случае, если другие команды работают незащищенными, вы также можете не защищать свое выражение вообще. Пока $CIRCLE_BRANCH не слишком экзотичен и не содержит пробелов, которые будут работать.

sed -i s/clever-registry/clever-$CIRCLE_BRANCH/g Dockerrun.aws.json