代码拉取完成,页面将自动刷新
trigger:
- master
stages:
- stage: Build
jobs:
- job: Windows
pool:
vmImage: 'VS2017-Win2016'
steps:
- task: MSBuild@1
displayName: 'Compile libijg* libraries'
inputs:
solution: "Native/Windows64/build_ALL/libijg*.x64.vcxproj"
platform: 'x64'
msbuildArchitecture: 'x64'
configuration: 'Release'
- task: MSBuild@1
displayName: 'Compile Windows library'
inputs:
solution: "Native/Windows64/build_ALL/Dicom.Native-win64.vcxproj"
platform: 'x64'
msbuildArchitecture: 'x64'
configuration: 'Release'
- task: PublishBuildArtifacts@1
displayName: Publish Windows artifacts
inputs:
PathtoPublish: 'Native/Windows64/build_ALL/bin/x64/Release/Dicom.Native-win64'
ArtifactName: 'lib-windows64'
publishLocation: 'Container'
- task: UseDotNet@2
inputs:
PackageType: 'sdk'
version: '5.0.x'
- task: DotNetCoreCLI@2
displayName: Unit tests
inputs:
command: 'test'
projects: 'Tests/Unit/*.csproj'
testRunTitle: 'fo-dicom.Codecs unit tests'
feedsToUse: 'select'
versioningScheme: 'off'
- job: Linux
dependsOn: Windows
pool:
vmImage: 'ubuntu-18.04'
steps:
- script: |
cd Native/Linux64/build_ALL
cmake ./CMakeLists.txt
make
displayName: 'Compile Linux library'
- task: PublishBuildArtifacts@1
displayName: Publish Linux artifacts
inputs:
PathtoPublish: 'Native/Linux64/build_ALL/bin'
ArtifactName: 'lib-linux64'
publishLocation: 'Container'
- task: DotNetCoreCLI@2
displayName: Compile managed library
inputs:
command: 'build'
projects: 'Platform/fo-dicom/fo-dicom.Codecs.csproj'
arguments: '--configuration Debug'
configuration: 'Debug'
feedsToUse: 'select'
versioningScheme: 'off'
- script: |
sed -nre 's:^.*<VersionPrefix>(.*)</VersionPrefix>.*$:##vso[task.setvariable variable=csprojVersion;isOutput=true]\1:p' Platform/fo-dicom/fo-dicom.Codecs.csproj
name: setvarStep
- task: PublishBuildArtifacts@1
displayName: Publish managed artifacts
inputs:
PathtoPublish: 'Platform/fo-dicom/bin/Debug/netstandard2.0'
ArtifactName: 'lib-managed'
publishLocation: 'Container'
- task: UseDotNet@2
inputs:
PackageType: 'sdk'
version: '5.0.x'
- task: DotNetCoreCLI@2
displayName: Unit tests
inputs:
command: 'test'
projects: 'Tests/Unit/*.csproj'
testRunTitle: 'fo-dicom.Codecs unit tests'
feedsToUse: 'select'
versioningScheme: 'off'
- job: MacOS
dependsOn: Linux
pool:
vmImage: 'macOS-10.14'
steps:
- script: |
cd Native/MacOS/build_ALL
cmake ./CMakeLists.txt
make
displayName: 'Compile MacOS library'
- task: PublishBuildArtifacts@1
displayName: Publish MacOS artifacts
inputs:
PathtoPublish: 'Native/MacOS/build_ALL/bin'
ArtifactName: 'lib-macOS'
publishLocation: 'Container'
- task: DotNetCoreCLI@2
displayName: Compile managed library
inputs:
command: 'build'
projects: 'Platform/fo-dicom/fo-dicom.Codecs.csproj'
arguments: '--configuration Debug'
configuration: 'Debug'
feedsToUse: 'select'
versioningScheme: 'off'
- script: |
sed -nEe 's:^.*<VersionPrefix>(.*)</VersionPrefix>.*$:##vso[task.setvariable variable=csprojVersion;isOutput=true]\1:p' Platform/fo-dicom/fo-dicom.Codecs.csproj
name: setvarStep
- task: PublishBuildArtifacts@1
displayName: Publish managed artifacts
inputs:
PathtoPublish: 'Platform/fo-dicom/bin/Debug/netstandard2.0'
ArtifactName: 'lib-managed'
publishLocation: 'Container'
- task: UseDotNet@2
inputs:
PackageType: 'sdk'
version: '5.0.x'
- task: DotNetCoreCLI@2
displayName: Unit tests
inputs:
command: 'test'
projects: 'Tests/Unit/*.csproj'
testRunTitle: 'fo-dicom.Codecs unit tests'
feedsToUse: 'select'
versioningScheme: 'off'
- job: Acceptance
dependsOn: MacOS
pool:
vmImage: 'VS2017-Win2016'
variables:
csprojVersion: $[ dependencies.MacOS.outputs['setvarStep.csprojVersion'] ]
steps:
- task: UseDotNet@2
inputs:
PackageType: 'sdk'
version: '5.0.x'
- task: DotNetCoreCLI@2
displayName: Compliance tests
inputs:
command: 'test'
projects: 'Tests/Acceptance/*.csproj'
testRunTitle: 'Acceptance tests for GitHub'
feedsToUse: 'select'
versioningScheme: 'off'
- task: ArchiveFiles@2
displayName: Zip files
inputs:
rootFolderOrFile: 'Tests/Acceptance/bin/debug/net5.0/out'
archiveType: 'zip'
archiveFile: 'Tests/Acceptance/out/AcceptanceImages-win64-$(Build.BuildId).zip'
- task: GitHubRelease@0
displayName: Release to GitHub
inputs:
gitHubConnection: Efferent-Open-Source
repositoryName: '$(Build.Repository.Name)'
action: 'create'
target: '$(Build.SourceVersion)'
tagSource: 'manual'
tag: 'v$(csprojVersion)'
assets: 'Tests/Acceptance/out/*.zip'
releaseNotesSource: 'file'
releaseNotesFile: 'Tests/Acceptance/bin/debug/net5.0/out/Results.md'
- stage: Deploy
jobs:
- job: Nuget
pool:
vmImage: 'VS2017-Win2016'
steps:
- task: DownloadBuildArtifacts@0
displayName: Retrieving build artifacts
inputs:
buildType: 'current'
downloadType: 'specific'
downloadPath: 'bin'
- task: NuGetCommand@2
displayName: Prepare nuget package
inputs:
command: 'pack'
feedsToUse: 'select'
packagesToPack: '**/fo-dicom.Codecs.nuspec'
versioningScheme: 'off'
- task: NuGetCommand@2
inputs:
command: 'push'
feedsToUse: 'select'
packagesToPush: '$(Build.ArtifactStagingDirectory)/**/*.nupkg'
nuGetFeedType: 'external'
publishFeedCredentials: 'Nuget.org'
versioningScheme: 'off'
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。