在 Azure Pipelines 中使用 replaceTokens 时,在多行变量中保持缩进

Keep indentation in multi line variables when using replacetokens in azure pipelines

提问人:Viktor Eriksson 提问时间:11/16/2023 更新时间:11/16/2023 访问量:40

问:

我在 azure 管道中定义了这个变量。

application.properties: |
    customMessage=This is dev machine
    customMessage2=This is dev machine2

我使用 replacetokens 任务将样式 #{someVariable}# 的模式替换为实际值。

我在这里使用它:

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-test-config
  namespace: xxx
data:
  application.properties: |
    #{application.properties}#

但这会导致以下结果:

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-test-config
  namespace: xxx
data:
  application.properties: |
    customMessage=This is dev machine
customMessage2=This is dev machine2

第一行没问题,但其余部分的缩进错误。

如何使所有行都有正确的缩进

azure-pipelines

评论


答:

1赞 Alvin Zhao 11/16/2023 #1

该任务似乎只能替换多行变量的值,但不能保持缩进。replacetokens@5

为此,我们可以选择在管道中定义多个单行变量。

variables:
  customMessage: This is dev machine
  customMessage2: This is dev machine2

并编辑目标文件。

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-test-config
  namespace: xxx
data:
  application.properties: |
    customMessage=#{customMessage}#
    customMessage2=#{customMessage2}#

输出符合预期。

评论

0赞 Viktor Eriksson 11/17/2023
是的,这是我目前的解决方法。我宁愿在变量部分中将配置作为一个整体键入。
0赞 Alvin Zhao 11/17/2023
事实上,这只是一种解决方法,我认为它目前在我们的场景中不支持缩进。为此,您还可以利用扩展任务的支持链接,并可能向他们的维护者报告当前的限制/建议。您是否考虑接受当前的解决方法,这可能会帮助其他有类似担忧的人?感谢。