* 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:
Varshitha Bachu 2022-04-22 15:37:43 -07:00 коммит произвёл GitHub
Родитель 0358280b78
Коммит fa6d980c0e
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
4 изменённых файлов: 150 добавлений и 1 удалений

136
azure-pipelines-release.yml Normal file
Просмотреть файл

@ -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'

Просмотреть файл

@ -38,6 +38,13 @@
<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" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.DurableTask" Version="2.6.1" /> <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.DurableTask" Version="2.6.1" />

Просмотреть файл

@ -42,6 +42,13 @@
<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" />
<PackageReference Include="Microsoft.Azure.Cosmos.Table" Version="1.0.8" /> <PackageReference Include="Microsoft.Azure.Cosmos.Table" Version="1.0.8" />