【问题标题】:Azure release add artifactAzure 发布添加工件
【发布时间】:2020-03-23 09:25:01
【问题描述】:

在 Azure Devops 中,我有一个构建和发布工件的构建管道和一个下载这些工件、定义一些基础架构配置并将工件批量上传到 Web 容器的发布管道。

在配置定义之后,我想添加一个任务来获取 AD 注册应用程序的 clientId,将其转储到一个 json 文件中,并将该文件复制到与构建工件相同的文件夹中。 json 必须上传到 web 容器,以便为 spa 应用程序提供运行时配置。

我尝试过的:

  • 在发布任务中生成一个json并将其复制到该文件夹​​中
  • 在代码中提交一个空 json,将其发布为构建工件并在发布任务中更新其内容
  • 使用文件转换任务,它似乎只允许更新一个键/值,而不是生成一个新的

上传的文件夹的内容似乎被锁定了。 那是对的吗 ?我可以做些什么来实现我的目标?

【问题讨论】:

    标签: azure-devops


    【解决方案1】:

    版本不发布工件。发布使用已发布的工件。一个版本可以为同一个构建运行多次。一个版本可以有多个环境。在任何这些情况下,您想做的事情都会立即崩溃。

    应该做的是编写一个完全符合您描述的自定义 BASH 或 Powershell 脚本(取决于您的偏好和操作系统):

    • 生成适当的 JSON 文件
    • 将 JSON 文件上传到“网络容器”

    您没有提供任何关于“Web 容器”是什么或您的部署环境是什么(即 AWS、Azure、在 Kubernetes 中运行的容器)的详细信息,因此这是可以提供的最全面的答案。

    【讨论】:

    • 谢谢你的回答很有帮助,我最终按照你的建议做了。
    • 我发现很难理解为什么不能在发布管道中生成工件。我正在部署到 Azure 存储帐户的静态网站的 $web 容器。应用程序注册在版本中完成,我想在版本中创建一个包含应用程序 clientId 和tenantId 的 json 文件,并将其与其他资产一起上传到 Web 容器。当 ui 加载时,它会获取此配置以进行单点登录身份验证。
    • 基本上我只构建一次并在运行时获取环境配置。如果您认为这种方法是错误的,请随时告诉我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-27
    • 1970-01-01
    • 2021-03-27
    • 2020-08-19
    • 2021-11-19
    相关资源
    最近更新 更多