如何在多行脚本中使用json输入传递GitLab变量?

托马斯·施瓦茨尔

我正在寻找一种方法来将$CI_COMMIT_TAG我内部的数据传递.gitlab-ci.ymlcurl具有json数据的多行命令。但是每次这样做,我都会得到变量键字符串而不是值。

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正确的方法?

1个

在单引号内,shell不会扩展任何内容。将它们放在双引号中,如下所示:

- "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"'\"}'"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在shell脚本文件中使用json变量?

如何在Jenkins Groovy的多行shell脚本中使用Groovy定义的和OS系统变量

如何在npm脚本中编写多行脚本?

如何在psql脚本中使用变量

如何在Postgres脚本中使用变量?

如何在YAML中的“脚本:”中使用多行命令?

如何在bash脚本中使用awk处理多行记录?

如何在doctest中的QuickCheck中使用多行输入?

如何在shell脚本中使用双引号传递变量值

如何在shell脚本中使用两个find命令输出传递导出变量

如何在执行脚本中使用Apple脚本的命令行参数?

如何在SQL中使用主键变量更新多行

在python中使用输入文件运行脚本

如何在无服务器脚本中使用gitlab CI / CD中受保护的环境变量?

如何在.gitlab-ci.yml变量中使用条件?

如何在php脚本中使用通过ajax传递的数据?

如何在提交脚本中使用表单输入值?

在Python脚本中使用输入变量

如何在MSBuild脚本中使用自定义变量?

如何在 shell 脚本变量中使用 {old,new}name?

如何在bash脚本的for循环中使用参数变量?

如何在Windows的npm脚本中使用变量

从shell设置变量:如何在脚本中使用它们?

如何在awk脚本中使用shell变量?

如何在expect脚本的if条件中使用变量?

如何在bash脚本的curl调用中使用变量

如何在mv命令中使用shell脚本变量

如何在Shell脚本中使用变量扩展

如何在jmeter groovy脚本中使用csv变量?