【问题标题】:Azure pipeline copy file taskAzure 管道复制文件任务
【发布时间】:2018-11-19 17:13:09
【问题描述】:

我们正在尝试在此处获取一些 CI/CD,因此我正在尝试通过 Azure Dev Ops 管道部署 Web 服务,但我遇到了 Web.configs 的问题。到目前为止,我已经走上了为每个环境(DEV、QA、PROD)配置一个配置的路线,并认为我只需让构建过程使用复制文件任务将相关文件复制到其之上。一切都已经在发布步骤中压缩了,所以我在构建步骤中完成了。

我从复制步骤得到以下输出:

2018-11-19T16:46:17.2133815Z found 1 files
2018-11-19T16:46:17.2141470Z Copying D:\a\1\s\Bridge\Configs\QA\Web.config 
to D:\a\1\s\Web.config
2018-11-19T16:46:17.2226220Z ##[section]Finishing: Set Web.config to QA

我已将其设置为在目的地覆盖。

看起来它在正确的目录中有正确的文件,但是当它开始部署时,我仍然在根目录中看到相同的(未复制的)Web.config。有什么想法可能在这里发生吗?

或者,有没有一种在部署后移动文件的好方法?看起来复制文件任务只能访问构建工件中所有内容都已压缩的内容,并且解压缩对我来说听起来像是错误的想法。

感谢任何帮助,谢谢!

注意:我希望使用这个复制文件而不是各种转换选项,因为它看起来更简单,而且我喜欢在源代码控制中使用单独的配置。

【问题讨论】:

  • 刚刚意识到,如果我想将管道带到 QA 和生产阶段,那么如果它在构建步骤中将无法工作,因此在部署后移动文件似乎是更好的选择。

标签: azure-devops web-config azure-pipelines


【解决方案1】:

您已经部分回答了自己的问题。您需要在发布管道而不是构建中执行此复制工作,以便文件的副本可以与其必须在其中运行的环境相关联。

因此,您可能需要将 Web 配置发送到构建工件中。也许将它们复制到 $(build.artifactstagingdirectory) 中的“configs”目录中。然后在您的发布管道中,它将下载您的工件,其中将包括您的“configs”目录和所有环境配置,您可以有一个发布管道任务,该任务基于环境,它从“configs”目录中复制正确的文件工件并将其就地复制到已部署 Web 应用程序的根目录。

【讨论】:

  • 谢谢!这非常有效。一个问题 - 我无法为我的网络应用程序的根目录找到正确的预定变量,我一直在寻找基于代理的东西。你知道根目录是否有变量吗?不过,在机器上提供绝对路径是可行的。
  • 代理不知道应用程序根目录将被部署到哪里,因为它不知道它可以部署到的技术或平台(即部署 apache java 应用程序是不同的)到 IIS 上的 .NET Web 应用程序)。它真正拥有的唯一知识是围绕代理本身及其目录放置,然后是任何系统/自定义环境变量。很高兴你让它工作:-)
猜你喜欢
  • 1970-01-01
  • 2016-09-12
  • 2020-08-07
  • 2016-06-04
  • 2022-06-10
  • 1970-01-01
  • 2017-09-06
  • 2021-12-29
  • 2020-05-09
相关资源
最近更新 更多