【问题标题】:Conan Add remote Task in Azure Pipelines : Failing when adding two remotes柯南在 Azure Pipelines 中添加远程任务:添加两个遥控器时失败
【发布时间】:2020-06-02 11:13:58
【问题描述】:

我有一个 Azure DevOps 管道,我在其中添加了两个遥控器。当使用 JFrog Extension 用于 Azure Pipelines 和包含的柯南上传任务时,此任务将不会使用配置的远程,但始终是最后添加的。有什么解决方案或者我错过了什么?

我希望以下内容能够很好地描述设置:

服务连接/repos:

售前回购

与技术用户的服务连接以添加、更新、删除预发布的包(通常基于分支的版本)

 - task: ArtifactoryConan@1
   displayName: "Add conan develop remote"
   inputs:
     conanCommand: "Add Remote"
     remoteName: "develop"
     artifactoryService: "Artifactory_Develop"
     conanRepo: "develop"
     purgeExistingRemotes: false
     conanUserHome: "$(Pipeline.Workspace)"

发布回购

与受限技术用户的服务连接只能添加到发布存储库,而不是更新或删除

 - task: ArtifactoryConan@1
   displayName: "Add conan release remote"
   inputs:
     conanCommand: "Add Remote"
     remoteName: "release"
     artifactoryService: "Artifactory_Release"
     conanRepo: "release"
     purgeExistingRemotes: false
     conanUserHome: "$(Pipeline.Workspace)"

上传任务

基于分支,我想使用专用服务连接将我的柯南工件上传并发布到专用存储库:

- task: ArtifactoryConan@1
        displayName: "Conan upload develop repo"
        condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/develop'), ne(variables['Build.Reason'], 'PullRequest'))
        inputs:
          conanCommand: "Upload"
          remoteName: "develop"
          patternOrReference: "$(conan_package_name)/$(conan_package_version)@$(project_name)/$(conan_channel)"
          extraArguments: "--all -c"
          buildName: "$(Build.DefinitionName)"
          buildNumber: "$(Build.BuildNumber)"
          conanUserHome: "$(Pipeline.Workspace)"

结果

柯南上传任务好像一直在使用最后添加的遥控器?

2020-06-02T10:43:03.3661883Z ##[section]Starting: Conan upload develop repo
2020-06-02T10:43:03.3669805Z ==============================================================================
2020-06-02T10:43:03.3670263Z Task         : Artifactory Conan
2020-06-02T10:43:03.3670628Z Description  : This task runs a Conan command.
2020-06-02T10:43:03.3670974Z Version      : 1.9.4
2020-06-02T10:43:03.3671273Z Author       : JFrog
2020-06-02T10:43:03.3671597Z Help         : Run Conan command.
2020-06-02T10:43:03.3671999Z ==============================================================================
2020-06-02T10:43:03.8219651Z Running Conan build tool from: /usr/local/bin/conan
2020-06-02T10:43:03.8220128Z Conan User Home: /__w/1
2020-06-02T10:43:03.8245768Z Running Conan command at: /__w/1/s
2020-06-02T10:43:03.8257251Z [command]/usr/local/bin/conan upload --all -c HelloWorld/1.0@Hello/develop
2020-06-02T10:43:04.2091929Z Uploading to remote 'release':
2020-06-02T10:43:04.2165470Z 
2020-06-02T10:43:04.2166636Z Uploading HelloWorld/1.0@Hello/develop to remote 'release'     

【问题讨论】:

  • 如果不传递特定遥控器,柯南会上传到列表中的第一个遥控器。我建议通过-r <remote_name> 以避免任何错误。当我说列表中的第一个时,它是关于索引,而不是年龄。如果你想在列表中添加一个新的遥控器,你必须通过--insert。查看文档:docs.conan.io/en/latest/reference/commands/misc/remote.html
  • 是的,如“上传任务”中所示,遥控器带有“remoteName”属性。我想以管道的方式使用它,因为通过这种方式,我可以将服务连接(以混淆和安全地存储凭据)映射到遥控器。我也认为这是一个错误。
  • 了解,现在尝试在“额外参数”选项中设置遥控器。无论如何不确定,为什么“remoteName”不起作用..
  • 我不明白您的评论,因为您的日志显示:“[command]/usr/local/bin/conan upload --all -c HelloWorld/1.0@Hello/develop”。那里没有列出遥控器。当您为 CI 作业运行它时,您可以改用 CONAN_REMOTE 环境变量。
  • 如果您在“额外参数”选项中设置遥控器是否有效?您可以报告remoteName 属性不起作用问题here

标签: azure-devops azure-pipelines artifactory conan


【解决方案1】:

在“extraArguments”中添加“-r(--remote)选项后,使用了正确的遥控器:

- task: ArtifactoryConan@1
    displayName: "Conan upload develop repo"
    inputs:
      conanCommand: "Upload"
      remoteName: "MYREMOTE" # this is not working
      patternOrReference: "$(conan_package_name)/$(conan_package_version)@$(project_name)/$(conan_channel)"
      extraArguments: "--all -c -r MYREMOTE" # this is
      buildName: "$(Build.DefinitionName)"
      buildNumber: "$(Build.BuildNumber)"
      conanUserHome: "$(Pipeline.Workspace)"

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-08-29
  • 1970-01-01
  • 1970-01-01
  • 2019-11-27
  • 1970-01-01
  • 2014-02-01
  • 1970-01-01
  • 2020-01-19
相关资源
最近更新 更多