Skip to content

Commit 48b09dc

Browse files
authored
Fixing release issues for v2.7.0 (Azure#2145)
- Merge main into dev - Switch to simpler SBOM packaging method - Fix release build breaks caused by performance projects - Other misc. quality of life improvements
1 parent d9a254e commit 48b09dc

File tree

6 files changed

+186
-5
lines changed

6 files changed

+186
-5
lines changed

WebJobs.Extensions.DurableTask.sln

+18
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ EndProject
2121
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{9850DECF-CBA2-43E7-B5E2-55053DD308E9}"
2222
ProjectSection(SolutionItems) = preProject
2323
.editorconfig = .editorconfig
24+
azure-pipelines-release.yml = azure-pipelines-release.yml
2425
README.md = README.md
2526
release_notes.md = release_notes.md
2627
EndProjectSection
@@ -80,6 +81,12 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "pipelines", "pipelines", "{
8081
.github\workflows\smoketest-node14-v4.yml = .github\workflows\smoketest-node14-v4.yml
8182
EndProjectSection
8283
EndProject
84+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DFPerfScenariosV1", "test\DFPerfScenariosV1\DFPerfScenariosV1.csproj", "{65F904AA-0F6F-48CB-BE19-593B7D68152A}"
85+
EndProject
86+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PerfTests", "PerfTests", "{7387E723-E153-4B7A-B105-8C67BFBD48CF}"
87+
EndProject
88+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DFPerfScenariosV4", "test\DFPerfScenarios\DFPerfScenariosV4.csproj", "{FC8AD123-F949-4D21-B817-E5A4BBF7F69B}"
89+
EndProject
8390
Global
8491
GlobalSection(SolutionConfigurationPlatforms) = preSolution
8592
Debug|Any CPU = Debug|Any CPU
@@ -156,6 +163,14 @@ Global
156163
{5F5FAF27-D6B8-4A60-ACF2-F63D13F89CA2}.Debug|Any CPU.Build.0 = Debug|Any CPU
157164
{5F5FAF27-D6B8-4A60-ACF2-F63D13F89CA2}.Release|Any CPU.ActiveCfg = Release|Any CPU
158165
{5F5FAF27-D6B8-4A60-ACF2-F63D13F89CA2}.Release|Any CPU.Build.0 = Release|Any CPU
166+
{65F904AA-0F6F-48CB-BE19-593B7D68152A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
167+
{65F904AA-0F6F-48CB-BE19-593B7D68152A}.Debug|Any CPU.Build.0 = Debug|Any CPU
168+
{65F904AA-0F6F-48CB-BE19-593B7D68152A}.Release|Any CPU.ActiveCfg = Release|Any CPU
169+
{65F904AA-0F6F-48CB-BE19-593B7D68152A}.Release|Any CPU.Build.0 = Release|Any CPU
170+
{FC8AD123-F949-4D21-B817-E5A4BBF7F69B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
171+
{FC8AD123-F949-4D21-B817-E5A4BBF7F69B}.Debug|Any CPU.Build.0 = Debug|Any CPU
172+
{FC8AD123-F949-4D21-B817-E5A4BBF7F69B}.Release|Any CPU.ActiveCfg = Release|Any CPU
173+
{FC8AD123-F949-4D21-B817-E5A4BBF7F69B}.Release|Any CPU.Build.0 = Release|Any CPU
159174
EndGlobalSection
160175
GlobalSection(SolutionProperties) = preSolution
161176
HideSolutionNode = FALSE
@@ -186,6 +201,9 @@ Global
186201
{9B0F4A0A-1B18-4E98-850A-14A2F76F673D} = {A8CF6993-258A-484A-AF6D-6CC88D36AF93}
187202
{FF6CD07A-A4BF-43C5-B14E-213328DEB835} = {9B0F4A0A-1B18-4E98-850A-14A2F76F673D}
188203
{5F5FAF27-D6B8-4A60-ACF2-F63D13F89CA2} = {7EC858EE-3481-4A82-AED4-CB00C34F42D0}
204+
{65F904AA-0F6F-48CB-BE19-593B7D68152A} = {7387E723-E153-4B7A-B105-8C67BFBD48CF}
205+
{7387E723-E153-4B7A-B105-8C67BFBD48CF} = {78BCF152-C22C-408F-9FB1-0F8C99B154B5}
206+
{FC8AD123-F949-4D21-B817-E5A4BBF7F69B} = {7387E723-E153-4B7A-B105-8C67BFBD48CF}
189207
EndGlobalSection
190208
GlobalSection(ExtensibilityGlobals) = postSolution
191209
SolutionGuid = {5E9AC327-DE18-41A5-A55D-E44CB4281943}

azure-pipelines-release.yml

+156
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
trigger: none
2+
pr: none
3+
4+
pool:
5+
name: '1ES-Hosted-DurableTaskFramework'
6+
demands:
7+
- ImageOverride -equals MMS2022TLS
8+
9+
steps:
10+
11+
# Configure all the .NET SDK versions we need
12+
- task: UseDotNet@2
13+
displayName: 'Use the .NET Core 2.1 SDK (required for build signing)'
14+
inputs:
15+
packageType: 'sdk'
16+
version: '2.1.x'
17+
18+
- task: UseDotNet@2
19+
displayName: 'Use the .NET Core 3.1 SDK'
20+
inputs:
21+
packageType: 'sdk'
22+
version: '3.1.x'
23+
24+
- task: UseDotNet@2
25+
displayName: 'Use the .NET 6 SDK'
26+
inputs:
27+
packageType: 'sdk'
28+
version: '6.0.x'
29+
30+
# Use NuGet
31+
- task: NuGetToolInstaller@1
32+
displayName: 'Use NuGet '
33+
34+
# dotnet restore
35+
- task: DotNetCoreCLI@2
36+
displayName: 'dotnet restore'
37+
inputs:
38+
command: restore
39+
projects: '**/**/*.csproj'
40+
feedsToUse: config
41+
nugetConfigPath: '.nuget/nuget.config'
42+
43+
# Build durable-extension
44+
- task: VSBuild@1
45+
displayName: 'Build Durable Extension'
46+
inputs:
47+
solution: '**/WebJobs.Extensions.DurableTask.sln'
48+
vsVersion: "16.0"
49+
configuration: Release
50+
51+
# Authenticode sign all the DLLs with the Microsoft certificate.
52+
- task: EsrpCodeSigning@1
53+
inputs:
54+
ConnectedServiceName: 'ESRP Service'
55+
FolderPath: 'src/WebJobs.Extensions.DurableTask/bin/Release'
56+
Pattern: '*DurableTask.dll'
57+
signConfigType: 'inlineSignParams'
58+
inlineOperation: |
59+
[
60+
{
61+
"KeyCode": "CP-230012",
62+
"OperationCode": "SigntoolSign",
63+
"Parameters": {
64+
"OpusName": "Microsoft",
65+
"OpusInfo": "http://www.microsoft.com",
66+
"FileDigest": "/fd \"SHA256\"",
67+
"PageHash": "/NPH",
68+
"TimeStamp": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
69+
},
70+
"ToolName": "sign",
71+
"ToolVersion": "1.0"
72+
},
73+
{
74+
"KeyCode": "CP-230012",
75+
"OperationCode": "SigntoolVerify",
76+
"Parameters": {},
77+
"ToolName": "sign",
78+
"ToolVersion": "1.0"
79+
}
80+
]
81+
SessionTimeout: '60'
82+
MaxConcurrency: '50'
83+
MaxRetryAttempts: '5'
84+
85+
# SBOM generator task for additional supply chain protection
86+
- task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0
87+
displayName: 'Manifest Generator '
88+
inputs:
89+
BuildDropPath: '$(System.DefaultWorkingDirectory)'
90+
91+
# dotnet pack
92+
# Packaging needs to be a separate step from build.
93+
# This will automatically pick up the signed DLLs.
94+
- task: DotNetCoreCLI@2
95+
displayName: 'dotnet pack WebJobs.Extensions.DurableTask.csproj'
96+
inputs:
97+
command: pack
98+
packagesToPack: 'src/**/WebJobs.Extensions.DurableTask.csproj'
99+
configuration: Release
100+
packDirectory: 'azure-functions-durable-extension'
101+
nobuild: true
102+
103+
# Remove redundant symbol package(s)
104+
- script: |
105+
echo *** Searching for .symbols.nupkg files to delete...
106+
dir /s /b *.symbols.nupkg
107+
108+
echo *** Deleting .symbols.nupkg files...
109+
del /S /Q *.symbols.nupkg
110+
111+
echo *** Listing remaining packages
112+
dir /s /b *.nupkg
113+
displayName: 'Remove Redundant Symbols Package(s)'
114+
continueOnError: true
115+
116+
# Digitally sign all the nuget packages with the Microsoft certificate.
117+
# This appears to be an in-place signing job, which is convenient.
118+
- task: EsrpCodeSigning@1
119+
inputs:
120+
ConnectedServiceName: 'ESRP Service'
121+
FolderPath: '$(System.DefaultWorkingDirectory)'
122+
Pattern: '*.nupkg'
123+
signConfigType: 'inlineSignParams'
124+
inlineOperation: |
125+
[
126+
{
127+
"KeyCode": "CP-401405",
128+
"OperationCode": "NuGetSign",
129+
"Parameters": {},
130+
"ToolName": "sign",
131+
"ToolVersion": "1.0"
132+
},
133+
{
134+
"KeyCode": "CP-401405",
135+
"OperationCode": "NuGetVerify",
136+
"Parameters": {},
137+
"ToolName": "sign",
138+
"ToolVersion": "1.0"
139+
}
140+
]
141+
SessionTimeout: '60'
142+
MaxConcurrency: '50'
143+
MaxRetryAttempts: '5'
144+
145+
# Make the nuget packages available for download in the ADO portal UI
146+
- publish: '$(System.DefaultWorkingDirectory)/azure-functions-durable-extension'
147+
displayName: 'Publish nuget packages to Artifacts'
148+
artifact: PackageOutput
149+
150+
- task: NuGetCommand@2
151+
displayName: 'NuGet push'
152+
inputs:
153+
command: push
154+
packagesToPush: 'Microsoft.Azure.WebJobs.Extensions.DurableTask.*.nupkg'
155+
nuGetFeedType: external
156+
publishFeedCredentials: 'Connor Credentials MyGet Staging'

src/WebJobs.Extensions.DurableTask/WebJobs.Extensions.DurableTask.csproj

+7
Original file line numberDiff line numberDiff line change
@@ -116,4 +116,11 @@
116116
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
117117
</PropertyGroup>
118118

119+
<ItemGroup Condition="'$(Configuration)'=='Release'">
120+
<Content Include="..\..\_manifest\**">
121+
<Pack>true</Pack>
122+
<PackagePath>content/SBOM</PackagePath>
123+
</Content>
124+
</ItemGroup>
125+
119126
</Project>

test/DFPerfScenarios/DFPerfScenarios.csproj test/DFPerfScenarios/DFPerfScenariosV4.csproj

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>netcoreapp3.1</TargetFramework>
4-
<AzureFunctionsVersion>v3</AzureFunctionsVersion>
3+
<TargetFramework>net60</TargetFramework>
4+
<AzureFunctionsVersion>v4</AzureFunctionsVersion>
55
</PropertyGroup>
66

77
<ItemGroup>
8-
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.*" />
8+
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.0.*" />
99
</ItemGroup>
1010

1111
<ItemGroup>

test/DFPerfScenariosV1/DFPerfScenarios.csproj test/DFPerfScenariosV1/DFPerfScenariosV1.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>net461</TargetFramework>
3+
<TargetFramework>net462</TargetFramework>
44
<AzureFunctionsVersion>v1</AzureFunctionsVersion>
55
</PropertyGroup>
66

test/DFPerfScenariosV1/Tests/Counter.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ namespace DFPerfScenarios
1414
public static class CounterTest
1515
{
1616
[FunctionName("StartCounter")]
17-
public static async Task<HttpResponseMessage> Start(
17+
public static HttpResponseMessage Start(
1818
[HttpTrigger(AuthorizationLevel.Function, methods: "post", Route = "StartCounter")] HttpRequestMessage req,
1919
[DurableClient] IDurableClient starter,
2020
ILogger log)

0 commit comments

Comments
 (0)