如何在 Concourse CI 中使用 yaml 模板变量作为值的一部分

马克斯·罗曼诺夫斯基

当我尝试使用模板变量时,例如{{hostname}}作为值的一部分,它被双引号包裹。

如何添加不带引号的变量?

例子:

---
resource_types:
  - name: maven
    type: docker-image
    source:
      repository: patrickcrocker/maven-resource
      tag: latest

resources:
  - name: maven-snapshot
    type: maven
    source:
      url: http://{{hostname}}:8081/repository/maven-snapshots/

  - name: repo
    type: git
    source:
      uri: "[email protected]:foo/bar.git"
      branch: master{{hostname}}

命令的结果fly -t ci set-pipeline --pipeline test --config test.yml --var="hostname=localhost"如下(看"localhost"):

resources:
  resource maven-snapshot has been added:
    name: maven-snapshot
    type: maven
    source:
      url: http://"localhost":8081/repository/maven-snapshots/

  resource repo has been added:
    name: repo
    type: git
    source:
      branch: master"localhost"
      uri: [email protected]:foo/bar.git

resource types:
  resource type maven has been added:
    name: maven
    type: docker-image
    source:
      repository: patrickcrocker/maven-resource
      tag: latest

我包含第 3 方 maven 资源的原因是 git 资源不允许{{}}在 中uri,导致错误:

failed to unmarshal configStructure: yaml: line 17: did not find expected key
乔什·扎拉比

更新

concourse v3.2.0 {{someValue}}语法开始,不推荐使用((someValue)). 新语法将理解您正在尝试插入字符串并相应地放置值。

替换{{hostname}}((hostname))将解决您的问题:

resources:
  - name: maven-snapshot
    type: maven
    source:
      url: http://((hostname)):8081/repository/maven-snapshots/

Concourse 不支持这一点。Concourse yaml 模板非常原始,您不能在字符串中间插入变量。您需要将您的url参数设置http://localhost:8081/repository/maven-snapshots/和您的分支参数设置为localmaster或任何它应该是。

我们知道这是一个问题,我们正在努力解决这个问题,但目前您无法按照您想要的方式设置变量。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何获得JSON的一部分,作为杰克逊使用纯文本

如何使用系统环境变量作为@PropertySource值的一部分?

如何在脚本启动时隐藏未使用的变量的一部分

如何证明使用脚本语言作为项目的一部分

使用模板变量作为脚本src的一部分

如何在ah:outputText Bold中使值的一部分?

如何在子查询中使用HAVING作为Select语句的一部分

如何通过Concourse CI管道发送电子邮件?

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

如何在JMeter中使用REGEX提取器从变量中获取值的一部分?

如何在travis-ci中使用环境变量

使用变量作为语句的一部分

如何在concourse-docker中使用本地docker映像作为资源

如何在Yaml文件(Helm)中使用json变量

Mediawiki:如何在画廊中使用{{PAGENAME}}作为文件名的一部分?

配置Concourse CI以使用AWS Secrets Manager

如何复制配置文件作为打包的一部分以在部署中使用?

Django使用模板变量的值作为另一个变量名的一部分

Rails-如何使用变量作为方法名称的一部分

如何使用函数参数作为变量的一部分?

如何在Java中使用字符串的一部分?

如何使用reCAPTCHA作为弹出窗口而不是网络的一部分?

如何在R ggplot2中使用多个变量旋转标签轴的一部分

如何在 Matlab 中使用其他结构的一部分创建结构?

如何在 bash shell 中使用查找结果作为正则表达式的一部分

React TypeScript:如何使用变量名作为键的一部分

如何使用变量内容作为其他变量名称的一部分?

在 YAML 文件中使用 Gitlab CI/CD 变量

如何在 ShouldBindJSON() 中使用結構的一部分?