繁体   English   中英

发送 Azure 构建工件到 Feed

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM