【发布时间】: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