Skip to content

Commit 744d122

Browse files
Add build pipeline
1 parent 40bc196 commit 744d122

File tree

4 files changed

+132
-0
lines changed

4 files changed

+132
-0
lines changed

ApiVersioning.sln

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "misc", "misc", "{2957BAF3-9
2222
.editorconfig = .editorconfig
2323
.gitattributes = .gitattributes
2424
.gitignore = .gitignore
25+
azure-pipelines.yml = azure-pipelines.yml
2526
CONTRIBUTING.md = CONTRIBUTING.md
2627
LICENSE = LICENSE
2728
nuget.config = nuget.config
@@ -119,6 +120,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{2BB57808
119120
build\resource.targets = build\resource.targets
120121
build\signing.props = build\signing.props
121122
build\signing.targets = build\signing.targets
123+
build\steps-ci.yml = build\steps-ci.yml
124+
build\steps-release.yml = build\steps-release.yml
122125
build\stylecop.json = build\stylecop.json
123126
EndProjectSection
124127
EndProject

azure-pipelines.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
trigger:
2+
branches:
3+
include:
4+
- ms
5+
- release/5.1
6+
paths:
7+
exclude:
8+
- .config
9+
- .devcontainer
10+
- .github
11+
- .vscode
12+
- docs
13+
- .vsconfig
14+
- LICENSE.txt
15+
- README.md
16+
17+
pr:
18+
- ms
19+
- release/5.1
20+
21+
pool:
22+
vmImage: windows-latest
23+
24+
variables:
25+
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
26+
DOTNET_CLI_TELEMETRY_OPTOUT: true
27+
28+
steps:
29+
- template: build/steps-ci.yml
30+
parameters:
31+
solution: $(Solution)
32+
configuration: $(BuildConfiguration)
33+
34+
- ${{ if eq(variables['Build.Reason'], 'Manual') }}:
35+
- template: build/steps-release.yml
36+
parameters:
37+
solution: $(Solution)
38+
configuration: $(BuildConfiguration)
39+
versionSuffix: $(VersionSuffix)

build/steps-ci.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
parameters:
2+
- name: solution
3+
type: string
4+
default: ''
5+
- name: configuration
6+
type: string
7+
default: Release
8+
9+
steps:
10+
- task: UseDotNet@2
11+
displayName: Install .NET 3.1
12+
inputs:
13+
packageType: runtime
14+
version: 3.1.x
15+
16+
- task: UseDotNet@2
17+
displayName: Install .NET 5.0
18+
inputs:
19+
packageType: runtime
20+
version: 5.0.x
21+
22+
- task: UseDotNet@2
23+
displayName: Install .NET 6.0
24+
inputs:
25+
packageType: sdk
26+
version: 6.0.x
27+
28+
- task: DotNetCoreCLI@2
29+
displayName: Build and Test
30+
inputs:
31+
command: test
32+
projects: ${{ parameters.solution }}
33+
arguments: --configuration ${{ parameters.configuration }}
34+
testRunTitle: Unit Tests
35+
publishTestResults: true

build/steps-release.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
parameters:
2+
- name: solution
3+
type: string
4+
default: ''
5+
- name: configuration
6+
type: string
7+
default: Release
8+
- name: versionSuffix
9+
type: string
10+
default: ''
11+
12+
steps:
13+
- task: DotNetCoreCLI@2
14+
displayName: Pack Packages
15+
inputs:
16+
command: pack
17+
projects: ${{ parameters.solution }}
18+
arguments: --configuration ${{ parameters.configuration }}
19+
buildProperties: VersionSuffix=${{ parameters.versionSuffix }}
20+
outputDir: $(Build.ArtifactStagingDirectory)/packages
21+
noBuild: true
22+
23+
- script: dotnet tool restore
24+
displayName: Restore Tools
25+
26+
- pwsh: >
27+
Compress-Archive
28+
-Path $(Build.ArtifactStagingDirectory)/packages/*
29+
-DestinationPath $(Build.ArtifactStagingDirectory)/packages.zip
30+
displayName: Package Artifacts for Signing
31+
32+
- script: >
33+
dotnet signclient sign
34+
--config build/signing.json
35+
--input $(Build.ArtifactStagingDirectory)/packages.zip
36+
--user $(codesign_user)
37+
--secret $(codesign_secret)
38+
--name "ASP.NET API Versioning"
39+
--description "Adds versioning semantics to APIs built with ASP.NET"
40+
--descriptionUrl "https://github.com/dotnet/aspnet-api-versioning"
41+
displayName: Sign Artifacts
42+
condition: false
43+
44+
- pwsh: >
45+
Expand-Archive
46+
-Path $(Build.ArtifactStagingDirectory)/packages.zip
47+
-DestinationPath $(Build.ArtifactStagingDirectory)/signed-packages
48+
displayName: Extract Signed Artifacts
49+
50+
- task: PublishBuildArtifacts@1
51+
displayName: Publish package artifacts
52+
inputs:
53+
pathToPublish: $(Build.ArtifactStagingDirectory)/signed-packages
54+
publishLocation: Container
55+
artifactName: NuGet Packages

0 commit comments

Comments
 (0)