首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jenkins替换存储在另一个存储库中的yaml文件中的图像标记

Jenkins替换存储在另一个存储库中的yaml文件中的图像标记
EN

Stack Overflow用户
提问于 2021-05-24 03:59:30
回答 1查看 326关注 0票数 0

我有两个不同的应用程序存储库和manifests.In清单存储库,每个微服务都有values.yaml文件。我正在寻找一种方法来更新${BUILD_NUMBER}的image.tag值,然后将此更改从应用程序管道提交/合并到清单存储库,如下所示。

做这件事的最好方法是什么?

代码语言:javascript
运行
复制
image:
  repository: example.com/app/backend
  tag: "450"
  pullPolicy: Always

这是jenkinsfile中的app repo阶段。

代码语言:javascript
运行
复制
stage('Deploy to DEV') {
    when{
        beforeAgent true
        expression{return env.GIT_BRANCH == "origin/development"}
    }
    steps {
        script {
            sh """
                git clone https://github.com/mycompany/backend.git
                cd apps/project1/app-dev/backend-dev
                
                def text = readFile file: "values.yaml"
                text = text.replaceAll("%tag%", "${${BUILD_NUMBER}}") 

                git add . -m "Update app image tag to ${BUILD_NUMBER}"
                git push origin master
            """
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2021-05-24 17:14:54

使用该解决方案,您的values.yaml将被替换为内容,并且每次此文件都会被视为已更改。

作为另一种解决方案,可以是:处理yaml文件中的环境变量,并通过jenkinsfile导出值。

您可以在values.yaml文件的tags部分中添加环境变量${ENVIRONMENT_VARIABLE}

其中的示例可能是:${BUILD_NUMBER}

然后,您可以通过jenkins管道传递此环境变量的值。

export ENV_VAR_NAME=env_var_value

export BUILD_NUMBER=${BUILD_NUMBER}

代码语言:javascript
运行
复制
                sh """
                git clone https://github.com/mycompany/backend.git
                cd apps/project1/app-dev/backend-dev
                
                # def text = readFile file: "values.yaml"
                # text = text.replaceAll("%tag%", "${${BUILD_NUMBER}}") 
                export BUILD_NUMBER=${BUILD_NUMBER}
                git add . -m "Update app image tag to ${BUILD_NUMBER}"
                git push origin master
            """

有关在yaml文件中使用环境变量的更多信息:https://docs.greatexpectations.io/en/0.11.6/how_to_guides/configuring_data_contexts/how_to_use_a_yaml_file_or_environment_variables_to_populate_credentials.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67663835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档