gpt4 book ai didi

sed - 如何使用 sed 将 yml 文件中的变量替换为 gitlab ci 管道变量

转载 作者:行者123 更新时间:2023-12-02 03:30:41 24 4
gpt4 key购买 nike

我想用 gitlab ci 管道中的变量替换 .yml 文件中的变量。

gitlab-ci.yml

deploy_test:
stage: deploy
script:
- sed -i 's/$TAG/$CI_COMMIT_REF_NAME/g' deploy/test.yml
- kubectl apply -f deploy/test.yml
when: manual
only:
- master
- tags

这表示在deploy/test.yml文件中应该将$TAG替换为$CI_COMMIT_REF_NAME的值?

部署/test.yml

image: git.<removed>.com:5005/eng/my-group/my-image:$TAG

最佳答案

在 sed 中使用双引号(")而不是单引号('),并注意正斜杠(/)需要也可以转义(如 \/)。

给出以下内容(假设您正在使用 docker hub)

$CI_COMMIT_REF_NAME=docker_user/repo:v1

您首先需要转义“/”字符,如下所示

$CI_COMMIT_REF_NAME=docker_user\/repo:v1

最后在sed命令中使用双引号

sed -i "s/$TAG/$CI_COMMIT_REF_NAME/g" deploy/test.yml

注意:除此之外,如果转义次数过多,您还可以更喜欢使用 | 而不是 /

喜欢:

sed -i "s|$TAG|$CI_COMMIT_REF_NAME|g" deploy/test.yml

关于sed - 如何使用 sed 将 yml 文件中的变量替换为 gitlab ci 管道变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54769226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com