代码拉取完成,页面将自动刷新
trigger:
- main
- rel/*
pr:
- main
- rel/*
variables:
BuildConfiguration: Release
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
disable.coverage.autogenerate: 'true'
stages:
- stage: Build
variables:
- group: 'Report Generator License Key'
jobs:
- job: Build
pool:
vmImage: windows-latest
steps:
- task: UseDotNet@2
displayName: 'Use .NET Core SDK 8.x'
inputs:
version: 8.x
- task: DotNetCoreCLI@2
inputs:
command: custom
custom: tool
arguments: install --tool-path . nbgv
displayName: Install NBGV tool
- script: nbgv cloud
displayName: Set Version
- task: DotNetCoreCLI@2
inputs:
command: restore
projects: .\src\Humanizer.sln
arguments: -c $(BuildConfiguration)
displayName: Restore
- task: VSBuild@1
inputs:
solution: .\src\Humanizer.sln
configuration: $(BuildConfiguration)
- task: NuGetToolInstaller@1
- pwsh: |
mkdir $(Build.ArtifactStagingDirectory)\Packages
$version = .\nbgv get-version -f json | ConvertFrom-Json
$nuspecs = gci .\NuSpecs\*.nuspec
foreach ($item in $nuspecs) {
nuget pack $($item.FullName) `
-outputdirectory $(Build.ArtifactStagingDirectory)\Packages `
-basepath $(System.DefaultWorkingDirectory)\src\ `
-NoPackageAnalysis `
-Properties "version=$($version.NuGetPackageVersion);RepositoryType=git;RepositoryCommit=$($version.GitCommitId);RepositoryUrl=https://github.com/Humanizr/Humanizer"
}
displayName: Create packages
- task: DotNetCoreCLI@2
inputs:
command: test
projects: .\src\Humanizer.Tests\Humanizer.Tests.csproj
arguments: -c $(BuildConfiguration) --no-build --collect:"XPlat code coverage" -s $(System.DefaultWorkingDirectory)/src/CodeCoverage.runsettings -- RunConfiguration.DisableAppDomain=true
displayName: Run Tests
# Generate code coverage report
# https://danielpalme.github.io/ReportGenerator/
- task: reportgenerator@5
displayName: Generate Code Coverage Report
inputs:
reports: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
targetdir: $(Build.ArtifactStagingDirectory)/coverageReports/
reporttypes: HtmlInline_AzurePipelines;Cobertura;Badges
license: '$(ReportGeneratorLicenseKey)'
# Publish Code Coverage results
- task: PublishCodeCoverageResults@1
displayName: 'Publish Code Coverage Results'
inputs:
codeCoverageTool: cobertura
summaryFileLocation: $(Build.ArtifactStagingDirectory)/coverageReports/Cobertura.xml
reportDirectory: $(Build.ArtifactStagingDirectory)/coverageReports/
- publish: $(Build.ArtifactStagingDirectory)\Packages
displayName: Publish build packages
artifact: BuildPackages
- stage: CodeSign
dependsOn: Build
condition: and(succeeded('Build'), not(eq(variables['build.reason'], 'PullRequest')))
jobs:
- job: CodeSign
displayName: Code Signing
pool:
vmImage: windows-latest
variables:
- group: SignCLI Creds
steps:
# Retreive unsigned artifacts
- download: current
artifact: BuildPackages
displayName: Download build artifacts
- task: UseDotNet@2
displayName: 'Use .NET SDK 8.x'
inputs:
version: 8.x
# Install the code signing tool
- task: DotNetCoreCLI@2
inputs:
command: custom
custom: tool
arguments: install --tool-path . --prerelease sign
displayName: Install SignTool tool
# Run the signing command
- pwsh: |
.\sign code azure-key-vault `
"**/*.nupkg" `
--base-directory "$(Pipeline.Workspace)\BuildPackages" `
--publisher-name "Humanizer" `
--description "Humanizer" `
--description-url "https://github.com/Humanizr/Humanizer" `
--azure-key-vault-tenant-id "$(SignTenantId)" `
--azure-key-vault-client-id "$(SignClientId)" `
--azure-key-vault-client-secret '$(SignClientSecret)' `
--azure-key-vault-certificate "$(SignKeyVaultCertificate)" `
--azure-key-vault-url "$(SignKeyVaultUrl)"
displayName: Sign packages
# Publish the signed packages
- publish: $(Pipeline.Workspace)/BuildPackages
displayName: Publish Signed Packages
artifact: SignedPackages
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。