2017-12-13 38 views
1

.gitlab-ci.yml 내의 $CI_COMMIT_TAG을 json 데이터의 복수 행 curl 명령에 전달하는 방법을 찾고 있습니다. 그러나 내가 할 때마다 나는 가변 키 문자열 값의 istead를 얻는다.json 입력으로 여러 줄 스크립트에서 GitLab 변수를 전달하는 방법은 무엇입니까?

production: 
    stage: deploy 
    script: 
    - "openssl aes-256-cbc -k $DEPLOY_KEY -in config/deploy_id_rsa_enc_gitlab -d -a -out config/deploy_id_rsa" 
    - chmod 600 config/deploy_id_rsa 
    - eval `ssh-agent -s` 
    - ssh-add config/deploy_id_rsa 
    - ssh-keyscan -H $HOST_PRODUCTION >> ~/.ssh/known_hosts 
    - bundle exec cap production deploy tag=$CI_COMMIT_TAG 
    - "curl --request POST -u $GRAFANA_USR:$GRAFANA_PWD \ 
     --url https://stats.domain.mil/grafana/api/annotations/graphite \ 
     --header 'content-type: application/json' \ 
     --data '{\"what\": \"Deploy: CORE\",\"tags\": [\"production_release\"],\"data\": \"$CI_COMMIT_TAG\"}'" 
    environment: 
    name: production 
    url: https://$HOST_PRODUCTION 
    only: 
    - tags 
    when: manual 

올바른 방법으로 $CI_COMMIT_TAG을 전달합니까?

답변

2

작은 따옴표 안에는 셸이 아무 것도 표시하지 않습니다. 이 같은 큰 따옴표 안에 그들을 장소 :

- "curl --request POST -u $GRAFANA_USR:$GRAFANA_PWD \ 
    --url https://stats.domain.mil/grafana/api/annotations/graphite \ 
    --header 'content-type: application/json' \ 
    --data '{\"what\":\"Deploy: CORE\",\"tags\":[\"production_release\"],\"data\":\"'"$CI_COMMIT_TAG"'\"}'"