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'
|
projects: '**/DurableTask.Netherite*Tests.csproj'
|
||||||
arguments: '--configuration $(buildConfiguration) --verbosity normal --filter "AnyTransport=true"'
|
arguments: '--configuration $(buildConfiguration) --verbosity normal --filter "AnyTransport=true"'
|
||||||
testRunTitle: 'Netherite Unit Tests on storageAccount/EventHubs'
|
testRunTitle: 'Netherite Unit Tests on storageAccount/EventHubs'
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,13 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="icon.png" Pack="true" PackagePath="\" />
|
<None Include="icon.png" Pack="true" PackagePath="\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup Condition="'$(Configuration)'=='Release'">
|
||||||
|
<Content Include="..\..\_manifest\**">
|
||||||
|
<Pack>true</Pack>
|
||||||
|
<PackagePath>content/SBOM</PackagePath>
|
||||||
|
</Content>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.Azure.DurableTask.Core" Version="2.7.0" />
|
<PackageReference Include="Microsoft.Azure.DurableTask.Core" Version="2.7.0" />
|
||||||
|
|
|
@ -41,6 +41,13 @@
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
<NoWarn>NU5125;NU5048</NoWarn>
|
<NoWarn>NU5125;NU5048</NoWarn>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup Condition="'$(Configuration)'=='Release'">
|
||||||
|
<Content Include="..\..\_manifest\**">
|
||||||
|
<Pack>true</Pack>
|
||||||
|
<PackagePath>content/SBOM</PackagePath>
|
||||||
|
</Content>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Azure.Messaging.EventHubs" Version="5.5.0" />
|
<PackageReference Include="Azure.Messaging.EventHubs" Version="5.5.0" />
|
||||||
|
|
Загрузка…
Ссылка в новой задаче