mar*_*c_s 5 .net-core azure-pipelines
仍在尝试全面掌握 Azure Pipelines 以及我可以用它们做什么......
我终于设法使用 Azure Pipelines 构建了我的小型 .NET Core 命令行实用程序 - 现在尝试将其发布为构建工件。
使用这个 YAML,我可以构建和打包工具:
- task: DotNetCoreCLI@2
displayName: 'dotnet build'
inputs:
command: 'build'
projects: '$(solution)'
- task: DotNetCoreCLI@2
displayName: 'dotnet publish'
inputs:
command: publish
publishWebProjects: False
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: 'MyTool_LatestBuild'
Run Code Online (Sandbox Code Playgroud)
但是在已发布的构建工件中,我只得到一个文件a.zip- 有什么方法可以影响该 ZIP 存档的名称吗?我真的很想有这样的事MyTool_2020_Sep_08.zip或MyTool_v1.5.7.zip东西....但我怎么能做到这一点?似乎无法在互联网上的任何地方找到任何非常有用的东西......任何输入?
谢谢!
编辑:看看 vernou 的答案 - 我错了,我将把它留在这里,因为有些人可能更喜欢有不同的步骤,而我们都喜欢从 SO 复制。
您正在使用的任务不包含该功能,但您可以(像我一样)选择自己压缩它:
- task: DotNetCoreCLI@2
inputs:
command: 'publish'
publishWebProjects: false
projects: |
**/*Client.csproj
**/*WorkerService.csproj
**/*Server.csproj
arguments: '-c $(BuildConfiguration) -o $(Build.StagingDirectory)/ci-build --no-build --self-contained -r $(runtime)'
zipAfterPublish: false
# Archive the /staging/ci-build folder to /staging/RemoteData.<BuildNumber>
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(Build.StagingDirectory)/ci-build'
includeRootFolder: false
archiveType: 'zip'
archiveFile: '$(Build.ArtifactStagingDirectory)/RemoteData.$(Build.BuildNumber).zip'
replaceExistingArchive: true
# Publish the zipfile as artifact
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/RemoteData.$(Build.BuildNumber).zip'
ArtifactName: 'RemoteData.$(Build.BuildNumber)'
publishLocation: 'Container'
Run Code Online (Sandbox Code Playgroud)
这样做的另一个好处是能够更密切地管理您的工作:
正如您所看到的,每个步骤都在这里单独列出。
1. 同意Vernou。您可以通过指定包含二进制文件的文件夹名称来自定义名称。所以我们需要修改step的--output参数和dotnet publishstep的PathtoPublish参数PublishBuildArtifacts。
2.但是要获取日期时间,您可以使用预定义变量Build.BuildNumber。
我的工作样本:
name: $(Date:yyyyMMdd)$(Rev:.r)
steps:
- task: DotNetCoreCLI@2
inputs:
command: 'build'
projects: '**/*.csproj'
- task: DotNetCoreCLI@2
displayName: 'dotnet publish'
inputs:
command: publish
publishWebProjects: False
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)/MyTool_$(Build.BuildNumber)'
zipAfterPublish: True
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/MyTool_$(Build.BuildNumber)'
ArtifactName: 'MyTool_LatestBuild'
publishLocation: 'Container'
Run Code Online (Sandbox Code Playgroud)
有关使用 BuildNumber 获取日期的更多详细信息,您可以查看Configure run or build numbers。
结果:
我们可以通过修改我们定义的方式来控制格式Build.BuildNumber(在 Yaml 中,它是name)。如果我们定义name: $(Date:yyyyMMdd),则输出 zip 将为MyTool_20200908.zip.
| 归档时间: |
|
| 查看次数: |
1498 次 |
| 最近记录: |