[英]Sending Azure Build Artifacts to Feed
我在将构建工件发送到我的提要时遇到问题,无法弄清楚我的问题出在哪里。
我从 Azure 文档中分叉了这个存储库,因为我是新手并学习创建 CI/CD 管道 ( https://github.com/Azure-Samples/python-docs-hello-world )。
使用麻线或通用 package 发布设置指南,有连接到提要的步骤,例如在您的主目录中创建一个 .piyrc 文件,但这是在本地完成还是在管道 YAML 中的某处完成?
通用出版 YAML
steps:
- task: UniversalPackages@0
displayName: 'Universal publish'
inputs:
command: publish
vstsFeed: 'cd75ead1-7beb-42f9-9477-e958501bb986'
publishDirectory: '$(Pipeline.Workspace)'
vstsFeedPublish: 'cd75ead1-7beb-42f9-9477-e958501bb986'
vstsFeedPackagePublish: drop
缠绕法
twine upload -r {Feed} --config-file $(PYPIRC_PATH) $(Pipeline.Workspace)
使用 Universal Publishing,我收到有关提供的路径无效的错误。
使用 Twine,我收到有关 InvalidDistribution 的错误:找不到文件(或扩展模式)
我在上面编写的 $(Pipeline.Workspace) 是作为构建管道中的路径创建的,用于从存档步骤复制所有文件。 我看到在构建管道中制作了工件,然后在发布管道的第一步下载了这个工件,所以我不确定发生了什么,或者它是否像使用不正确的路径一样简单。
使用 Twine,我收到有关 InvalidDistribution 的错误:找不到文件(或扩展模式)
您需要指定特定的工件路径,而不是使用$(Pipeline.Workspace)
。
$(pipeline.workspcae)
等于$(Agent.BuildDirectory)
。 你可以参考这个文档。
从 Github 链接中,您似乎想发布 python package 来供稿。
您可以参考以下步骤来创建 CI\CD。
在 CI 中,您可以Build sdist
并将工件发布到管道。
这是示例:
steps:
- task: UsePythonVersion@0
displayName: 'Use Python 3.6'
inputs:
versionSpec: 3.6
- script: 'python setup.py sdist'
displayName: 'Build sdist'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: dist'
inputs:
PathtoPublish: dist
ArtifactName: dist
在 CD 中,您可以将构建工件设置为资源并使用 twine 将 python package 上传到 feed。
这是一个例子:
twine upload -r AzureTest23 --config-file $(PYPIRC_PATH) D:\a\r1\a\{Source alias}\dist\*
twine authenticate
任务可以提供$(PYPIRC_PATH)
变量。
如果要确定正确的路径,可以在发布日志中找到。
注意:如果路径中有空格或特殊字符,需要在cmd中进行转义,否则无法识别。
该名称与source alias
相关,您可以在工件源中更改它。
顺便说一句,如果你使用Universal Publish
任务,你还需要给出正确的路径。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.