【问题标题】:Set working directory of a project in mono repo in Azure Devops在 Azure Devops 的 mono repo 中设置项目的工作目录
【发布时间】:2021-05-23 00:08:00
【问题描述】:

我的项目正在使用微服务,在一个存储库中,我们在 Azure DevOps 中有多个应用程序。 例如,我们有名为 Microservice 的 Repos,其中有 .NetProject、AngularUI 项目和 Java 项目代码。结构如下所示:

在设置 CI 管道时,我已包含如下路径:

variables:
  - name: working-dir
    value: 'MicroserviceProject/AngularUI/ClientApp/'

trigger:
  branches:
    include:
      - master
  paths:
    include:
      - 'MicroserviceProject/AngularUI/ClientApp/*'

我没有看到 AngularUI 项目的代码被正确检出并遇到错误,他们无法找到 package.json 文件。 如何为 repo 中的不同项目设置工作目录?

更新:

我能够找到该文件,但构建没有给我任何输出文件。

【问题讨论】:

  • 你能分享一下日志吗?我无法理解这个问题。
  • 我修复了最初的问题。现在找到了 package.json 文件,但构建的输出为零。我已经更新了问题
  • 你使用了什么任务?请分享您的完整 yaml 文件。
  • 感谢您帮助我。我解决了。构建工件不可用,因为我已经设置了工作目录。因此,我必须将文件显式输出到暂存工件目录
  • @Asterix 很高兴听到这个消息!请分享您的解决方案作为答案并标记它。这将使有相同问题的人更容易找到答案。

标签: azure-devops yaml monorepo


【解决方案1】:

我如何解决此问题: 最初我不确定工作目录是否设置正确。即使是,我也不确定 package.json 文件是否被正确读取。为了检查这一点,我将以下脚本添加到 Azure CI 管道,例如:

  inputs:
targetType: 'inline'
script: dir
  $(Build.ArtifactStagingDirectory)

显示名称:'检查'

这向我表明,在构建之后,工件不会存储在任何地方。因此我不得不明确提到输出路径。为此,我运行以下命令进行构建:

run-script build -- --output-path=$(Build.ArtifactStagingDirectory

这解决了我面临的问题。

【讨论】:

    猜你喜欢
    • 2020-09-11
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 2019-08-09
    • 1970-01-01
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多