Add Release Pipeline (#150)
* Set up CI with Azure Pipelines [skip ci] * adding separate release pipeline yaml * update csproj to include manifest in package * Update VM * update AzureFunctions csproj * update comments and spacing * minor fix * adding IncludeReferenceProjects to .csproj * remove include reference projects flag * updated order of tasks based on dependencies * updated restore task
This commit is contained in:
Родитель
0358280b78
Коммит
fa6d980c0e
|
@ -0,0 +1,136 @@
|
|||
# .NET Desktop
|
||||
# Build and run tests for .NET Desktop or Windows classic desktop solutions.
|
||||
# Add steps that publish symbols, save build artifacts, and more:
|
||||
# https://docs.microsoft.com/azure/devops/pipelines/apps/windows/dot-net
|
||||
|
||||
trigger: none
|
||||
pr: none
|
||||
|
||||
pool:
|
||||
name: '1ES-Hosted-DurableTaskFramework'
|
||||
demands:
|
||||
- ImageOverride -equals MMS2022TLS
|
||||
|
||||
steps:
|
||||
# Start by restoring all the dependencies.
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: 'Restore nuget dependencies'
|
||||
inputs:
|
||||
command: restore
|
||||
verbosityRestore: Minimal
|
||||
projects: |
|
||||
src/DurableTask.Netherite/DurableTask.Netherite.csproj
|
||||
src/DurableTask.Netherite.AzureFunctions/DurableTask.Netherite.AzureFunctions.csproj
|
||||
|
||||
# Build the filtered solution in release mode, specifying the continuous integration flag.
|
||||
- task: VSBuild@1
|
||||
displayName: 'Build (Netherite)'
|
||||
inputs:
|
||||
solution: 'src/DurableTask.Netherite/DurableTask.Netherite.csproj'
|
||||
vsVersion: '16.0'
|
||||
logFileVerbosity: minimal
|
||||
configuration: Release
|
||||
msbuildArgs: /p:GITHUB_RUN_NUMBER=$(Build.BuildId) /p:ContinuousIntegrationBuild=true
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: 'Build (Netherite Azure Functions)'
|
||||
inputs:
|
||||
solution: 'src/DurableTask.Netherite.AzureFunctions/DurableTask.Netherite.AzureFunctions.csproj'
|
||||
vsVersion: '16.0'
|
||||
logFileVerbosity: minimal
|
||||
configuration: Release
|
||||
msbuildArgs: /p:GITHUB_RUN_NUMBER=$(Build.BuildId) /p:ContinuousIntegrationBuild=true
|
||||
|
||||
# Manifest Generator Task
|
||||
- task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0
|
||||
displayName: 'Manifest Generator '
|
||||
inputs:
|
||||
BuildDropPath: '$(System.DefaultWorkingDirectory)'
|
||||
|
||||
# Authenticode sign all the DLLs with the Microsoft certificate.
|
||||
# This appears to be an in-place signing job, which is convenient.
|
||||
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
||||
displayName: 'ESRP CodeSigning: Authenticode'
|
||||
inputs:
|
||||
ConnectedServiceName: 'ESRP Service'
|
||||
FolderPath: 'src'
|
||||
Pattern: 'DurableTask.*.dll'
|
||||
signConfigType: inlineSignParams
|
||||
inlineOperation: |
|
||||
[
|
||||
{
|
||||
"KeyCode": "CP-230012",
|
||||
"OperationCode": "SigntoolSign",
|
||||
"Parameters": {
|
||||
"OpusName": "Microsoft",
|
||||
"OpusInfo": "http://www.microsoft.com",
|
||||
"FileDigest": "/fd \"SHA256\"",
|
||||
"PageHash": "/NPH",
|
||||
"TimeStamp": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
|
||||
},
|
||||
"ToolName": "sign",
|
||||
"ToolVersion": "1.0"
|
||||
},
|
||||
{
|
||||
"KeyCode": "CP-230012",
|
||||
"OperationCode": "SigntoolVerify",
|
||||
"Parameters": {},
|
||||
"ToolName": "sign",
|
||||
"ToolVersion": "1.0"
|
||||
}
|
||||
]
|
||||
|
||||
# Packaging needs to be a separate step from build.
|
||||
# This will automatically pick up the signed DLLs.
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: Generate nuget packages
|
||||
inputs:
|
||||
command: pack
|
||||
verbosityPack: Minimal
|
||||
configuration: Release
|
||||
nobuild: true
|
||||
packDirectory: $(build.artifactStagingDirectory)
|
||||
packagesToPack: 'src/DurableTask.Netherite/DurableTask.Netherite.csproj'
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: Generate nuget packages
|
||||
inputs:
|
||||
command: pack
|
||||
verbosityPack: Minimal
|
||||
configuration: Release
|
||||
nobuild: true
|
||||
packDirectory: $(build.artifactStagingDirectory)
|
||||
packagesToPack: 'src/DurableTask.Netherite.AzureFunctions/DurableTask.Netherite.AzureFunctions.csproj'
|
||||
|
||||
# Digitally sign all the nuget packages with the Microsoft certificate.
|
||||
# This appears to be an in-place signing job, which is convenient.
|
||||
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
||||
displayName: 'ESRP CodeSigning: Nupkg'
|
||||
inputs:
|
||||
ConnectedServiceName: 'ESRP Service'
|
||||
FolderPath: $(build.artifactStagingDirectory)
|
||||
Pattern: '*.nupkg'
|
||||
signConfigType: inlineSignParams
|
||||
inlineOperation: |
|
||||
[
|
||||
{
|
||||
"KeyCode": "CP-401405",
|
||||
"OperationCode": "NuGetSign",
|
||||
"Parameters": {},
|
||||
"ToolName": "sign",
|
||||
"ToolVersion": "1.0"
|
||||
},
|
||||
{
|
||||
"KeyCode": "CP-401405",
|
||||
"OperationCode": "NuGetVerify",
|
||||
"Parameters": {},
|
||||
"ToolName": "sign",
|
||||
"ToolVersion": "1.0"
|
||||
}
|
||||
]
|
||||
|
||||
# Make the nuget packages available for download in the ADO portal UI
|
||||
- publish: $(build.artifactStagingDirectory)
|
||||
displayName: 'Publish nuget packages to Artifacts'
|
||||
artifact: PackageOutput
|
|
@ -46,4 +46,3 @@ steps:
|
|||
projects: '**/DurableTask.Netherite*Tests.csproj'
|
||||
arguments: '--configuration $(buildConfiguration) --verbosity normal --filter "AnyTransport=true"'
|
||||
testRunTitle: 'Netherite Unit Tests on storageAccount/EventHubs'
|
||||
|
||||
|
|
|
@ -37,6 +37,13 @@
|
|||
<ItemGroup>
|
||||
<None Include="icon.png" Pack="true" PackagePath="\" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="'$(Configuration)'=='Release'">
|
||||
<Content Include="..\..\_manifest\**">
|
||||
<Pack>true</Pack>
|
||||
<PackagePath>content/SBOM</PackagePath>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Azure.DurableTask.Core" Version="2.7.0" />
|
||||
|
|
|
@ -41,6 +41,13 @@
|
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
<NoWarn>NU5125;NU5048</NoWarn>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Condition="'$(Configuration)'=='Release'">
|
||||
<Content Include="..\..\_manifest\**">
|
||||
<Pack>true</Pack>
|
||||
<PackagePath>content/SBOM</PackagePath>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Azure.Messaging.EventHubs" Version="5.5.0" />
|
||||
|
|
Загрузка…
Ссылка в новой задаче