Skip to content

Commit c28b7f7

Browse files
authored
chore: support preview net8.0 (#421)
* chore: support preview net8.0 * pr-fix: add net8.0 version to gh yaml * pr-fix: use preview versions in ci build * pr-fix: code-coverage single framework * pr-fix: use preview net8 in docker yaml * pr-fix: streamline dockerfile * pr-fix: streamline dockerfile * pr-fix: correct to isolated az func * chore: streamline w/ observability docker integration test * pr-fix: simplify project target framework packages * pr-sug: apply pr suggestions * pr-fix: remove netcoreapp3.1 remaining packages
1 parent d16484a commit c28b7f7

26 files changed

+114
-185
lines changed

.github/workflows/code-coverage.yml

+6-8
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,13 @@ jobs:
2323
steps:
2424
- name: Checkout repository
2525
uses: actions/checkout@v2
26-
27-
- name: Coverlet coverage test
28-
uses: b3b00/[email protected]
26+
- uses: actions/setup-dotnet@v3
2927
with:
30-
testProject: 'src/Arcus.Security.Tests.Unit/Arcus.Security.Tests.Unit.csproj'
31-
excludes: '[Arcus.Security.Tests.*]*,[Arcus.Security.Providers.*]*'
32-
threshold: 80
33-
output: 'coverage.xml'
34-
outputFormat: 'opencover'
28+
dotnet-version: '8.0.x'
29+
dotnet-quality: 'preview'
30+
31+
- name: Coverlet coverage unit test
32+
run: dotnet test --framework net8.0 -p:coverletOutput=coverage.json -p:CollectCoverage=true -p:CoverletOutputFormat=\"opencover,json\" -p:ExcludeByAttribute=\"Obsolete,GeneratedCodeAttribute,CompilerGeneratedAttribute\" -p:Exclude=\"[Arcus.Security.Tests.*]*,[Arcus.Security.Providers.*]*\" src/Arcus.Security.Tests.Unit/Arcus.Security.Tests.Unit.csproj
3533

3634
- name: Codecov
3735
uses: codecov/[email protected]

.github/workflows/codeql-analysis.yml

+4
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ jobs:
3939
steps:
4040
- name: Checkout repository
4141
uses: actions/checkout@v2
42+
- uses: actions/setup-dotnet@v3
43+
with:
44+
dotnet-version: '8.0.x'
45+
dotnet-quality: 'preview'
4246

4347
# Initializes the CodeQL tools for scanning.
4448
- name: Initialize CodeQL

build/ci-build.yml

+2
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ stages:
5353
parameters:
5454
dotnetSdkVersion: '$(DotNet.Sdk.Version)'
5555
versionSuffix: '$(packageVersion)'
56+
includePreviewVersions: true
5657
- task: CopyFiles@2
5758
displayName: 'Copy build artifacts'
5859
inputs:
@@ -88,6 +89,7 @@ stages:
8889
parameters:
8990
dotnetSdkVersion: '$(DotNet.Sdk.Version)'
9091
projectName: '$(Project).Tests.Unit'
92+
includePreviewVersions: true
9193

9294
- stage: IntegrationTests
9395
displayName: Integration Tests

build/nuget-release.yml

+2
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ stages:
3939
parameters:
4040
dotnetSdkVersion: '$(DotNet.Sdk.Version)'
4141
version: $(Build.BuildNumber)
42+
includePreviewVersions: true
4243
- task: CopyFiles@2
4344
displayName: 'Copy build artifacts'
4445
inputs:
@@ -74,6 +75,7 @@ stages:
7475
parameters:
7576
dotnetSdkVersion: '$(DotNet.Sdk.Version)'
7677
projectName: '$(Project).Tests.Unit'
78+
includePreviewVersions: true
7779

7880
- stage: IntegrationTests
7981
displayName: Integration Tests

build/templates/run-integration-tests.yml

+2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ steps:
1414
inputs:
1515
packageType: 'sdk'
1616
version: '$(DotNet.Sdk.VersionBC)'
17+
includePreviewVersions: true
1718
- task: Docker@1
1819
displayName: 'Build Docker image from ${{ parameters.dockerProjectName }}'
1920
inputs:
@@ -32,6 +33,7 @@ steps:
3233
parameters:
3334
dotnetSdkVersion: '$(DotNet.Sdk.Version)'
3435
projectName: '$(Project).Tests.Integration'
36+
includePreviewVersions: true
3537
- task: Bash@3
3638
inputs:
3739
targetType: 'inline'

build/variables/build.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
variables:
2-
DotNet.Sdk.Version: '6.0.100'
2+
DotNet.Sdk.Version: '8.0.x'
33
# Backwards compatible .NET SDK version
4-
DotNet.Sdk.VersionBC: '3.1.201'
4+
DotNet.Sdk.VersionBC: '6.0.100'
55
Project: 'Arcus.Security'
66
Vm.Image: 'ubuntu-latest'

src/Arcus.Security.AzureFunctions/Arcus.Security.AzureFunctions.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net6.0;netstandard2.1</TargetFrameworks>
4+
<TargetFrameworks>net8.0;net6.0;netstandard2.1</TargetFrameworks>
55
<Authors>Arcus</Authors>
66
<Company>Arcus</Company>
77
<Description>Contains Azure Functions core functionality for Arcus Security</Description>
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net6.0;netstandard2.1;netcoreapp3.1</TargetFrameworks>
4+
<TargetFrameworks>net8.0;net6.0;netstandard2.1</TargetFrameworks>
55
<Authors>Arcus</Authors>
66
<Company>Arcus</Company>
77
<Description>Contains core functionality for Arcus.Security</Description>
@@ -18,24 +18,22 @@
1818
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
1919
</PropertyGroup>
2020

21+
<PropertyGroup>
22+
<!-- Allows (for now) preview packages, as we are referencing Arcus' preview .NET 8 package. -->
23+
<NoWarn>NU5104</NoWarn>
24+
</PropertyGroup>
25+
2126
<ItemGroup>
2227
<None Include="..\..\README.md" Pack="true" PackagePath="\" />
2328
<None Include="..\..\LICENSE" Pack="true" PackagePath="\" />
24-
<None Include="..\..\docs\static\img\icon.png" Pack="true" PackagePath="\"/>
29+
<None Include="..\..\docs\static\img\icon.png" Pack="true" PackagePath="\" />
2530
</ItemGroup>
2631

27-
<ItemGroup Condition="'$(TargetFramework)' == 'net6.0'">
28-
<PackageReference Include="Arcus.Observability.Telemetry.Core" Version="[2.4.0,3.0.0)" />
29-
<PackageReference Include="Guard.Net" Version="2.0.0" />
32+
<ItemGroup>
33+
<PackageReference Include="Arcus.Observability.Telemetry.Core" Version="[3.0.0-preview-1-net8.0,4.0.0)" />
34+
<PackageReference Include="Guard.Net" Version="3.0.0" />
3035
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="6.0.0" />
3136
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="6.0.0" />
3237
</ItemGroup>
3338

34-
<ItemGroup Condition="'$(TargetFramework)' != 'net6.0'">
35-
<PackageReference Include="Arcus.Observability.Telemetry.Core" Version="[2.0.0,3.0.0)" />
36-
<PackageReference Include="Guard.Net" Version="1.2.0" />
37-
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="3.1.8" />
38-
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.1.8" />
39-
</ItemGroup>
40-
4139
</Project>
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
using System;
2-
using System.Runtime.Serialization;
32
using GuardNet;
43

54
namespace Arcus.Security.Core
65
{
76
/// <summary>
87
/// Exception, thrown when no secret was found, using the given name.
98
/// </summary>
10-
[Serializable]
119
public class SecretNotFoundException : Exception
1210
{
1311
/// <summary>
@@ -40,34 +38,9 @@ public SecretNotFoundException(string name, Exception innerException) : base($"T
4038
Name = name;
4139
}
4240

43-
/// <summary>
44-
/// Creates <see cref="SecretNotFoundException"/> used for serialization.
45-
/// </summary>
46-
/// <param name="info">The <see cref="T:SerializationInfo"></see> that holds the serialized object data about the exception being thrown.</param>
47-
/// <param name="context">The <see cref="T:StreamingContext"></see> that contains contextual information about the source or destination.</param>
48-
/// <exception cref="ArgumentNullException">The info must not be <c>null</c>.</exception>
49-
/// <exception cref="SerializationException">The class name must not be <c>null</c> and <see cref="Exception.HResult"/> must not be zero (<c>0</c>).</exception>
50-
protected SecretNotFoundException(SerializationInfo info, StreamingContext context) : base(info, context)
51-
{
52-
Name = info.GetString(nameof(Name));
53-
}
54-
5541
/// <summary>
5642
/// Name of the missing key
5743
/// </summary>
5844
public string Name { get; } = "undefined";
59-
60-
/// <summary>
61-
/// When overridden in a derived class, sets the <see cref="T:SerializationInfo"></see> with information about the exception.
62-
/// </summary>
63-
/// <param name="info">The <see cref="T:SerializationInfo"></see> that holds the serialized object data about the exception being thrown.</param>
64-
/// <param name="context">The <see cref="T:StreamingContext"></see> that contains contextual information about the source or destination.</param>
65-
/// <exception cref="T:ArgumentNullException">The <paramref name="info">info</paramref> parameter is a null reference (Nothing in Visual Basic).</exception>
66-
public override void GetObjectData(SerializationInfo info, StreamingContext context)
67-
{
68-
base.GetObjectData(info, context);
69-
70-
info.AddValue(nameof(Name), Name);
71-
}
7245
}
7346
}

src/Arcus.Security.Providers.AzureKeyVault/Arcus.Security.Providers.AzureKeyVault.csproj

+3-12
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net6.0;netstandard2.1;netcoreapp3.1</TargetFrameworks>
4+
<TargetFrameworks>net8.0;net6.0;netstandard2.1</TargetFrameworks>
55
<Authors>Arcus</Authors>
66
<Description>Provides support for Azure Key Vault</Description>
77
<Copyright>Copyright (c) Arcus</Copyright>
@@ -20,17 +20,7 @@
2020
<ItemGroup>
2121
<None Include="..\..\README.md" Pack="true" PackagePath="\" />
2222
<None Include="..\..\LICENSE" Pack="true" PackagePath="\" />
23-
<None Include="..\..\docs\static\img\icon.png" Pack="true" PackagePath="\"/>
24-
</ItemGroup>
25-
26-
<ItemGroup Condition="'$(TargetFramework)' == 'net6.0'">
27-
<PackageReference Include="Guard.Net" Version="2.0.0" />
28-
<PackageReference Include="Microsoft.Extensions.Configuration" Version="6.0.0" />
29-
</ItemGroup>
30-
31-
<ItemGroup Condition="'$(TargetFramework)' != 'net6.0'">
32-
<PackageReference Include="Guard.Net" Version="1.2.0" />
33-
<PackageReference Include="Microsoft.Extensions.Configuration" Version="3.1.8" />
23+
<None Include="..\..\docs\static\img\icon.png" Pack="true" PackagePath="\" />
3424
</ItemGroup>
3525

3626
<ItemGroup>
@@ -42,6 +32,7 @@
4232
<PackageReference Include="Microsoft.Azure.KeyVault.WebKey" Version="3.0.2" />
4333
<!-- End of deprecated packages -->
4434
<PackageReference Include="Microsoft.Azure.Services.AppAuthentication" Version="1.5.0" />
35+
<PackageReference Include="Microsoft.Extensions.Configuration" Version="6.0.0" />
4536
<PackageReference Include="Microsoft.IdentityModel.Clients.ActiveDirectory" Version="5.2.0" />
4637
<PackageReference Include="Polly" Version="7.2.1" />
4738
</ItemGroup>

src/Arcus.Security.Providers.AzureKeyVault/KeyVaultSecretProvider.cs

-8
Original file line numberDiff line numberDiff line change
@@ -397,11 +397,7 @@ private async Task<TResponse> InteractWithKeyVaultAsync<TResponse>(
397397
Func<SecretClient, Task<TResponse>> interactWithNewClient)
398398
{
399399
var isSuccessful = false;
400-
#if NET6_0
401400
using (DurationMeasurement measurement = DurationMeasurement.Start())
402-
#else
403-
using (DependencyMeasurement measurement = DependencyMeasurement.Start())
404-
#endif
405401
{
406402
try
407403
{
@@ -437,11 +433,7 @@ private TResponse InteractWithKeyVault<TResponse>(
437433
Func<SecretClient, TResponse> interactWithNewClient)
438434
{
439435
var isSuccessful = false;
440-
#if NET6_0
441436
using (DurationMeasurement measurement = DurationMeasurement.Start())
442-
#else
443-
using (DependencyMeasurement measurement = DependencyMeasurement.Start())
444-
#endif
445437
{
446438
try
447439
{

src/Arcus.Security.Providers.CommandLine/Arcus.Security.Providers.CommandLine.csproj

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net6.0;netstandard2.1</TargetFrameworks>
4+
<TargetFrameworks>net8.0;net6.0;netstandard2.1</TargetFrameworks>
55
<Authors>Arcus</Authors>
66
<Description>Provides support for command line arguments with Arcus Secret Store</Description>
77
<Copyright>Copyright (c) Arcus</Copyright>
@@ -23,14 +23,10 @@
2323
<None Include="..\..\docs\static\img\icon.png" Pack="true" PackagePath="\"/>
2424
</ItemGroup>
2525

26-
<ItemGroup Condition="'$(TargetFramework)' == 'net6.0'">
26+
<ItemGroup>
2727
<PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="6.0.0" />
2828
</ItemGroup>
2929

30-
<ItemGroup Condition="'$(TargetFramework)' != 'net6.0'">
31-
<PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="3.1.8" />
32-
</ItemGroup>
33-
3430
<ItemGroup>
3531
<ProjectReference Include="..\Arcus.Security.Core\Arcus.Security.Core.csproj" />
3632
</ItemGroup>

src/Arcus.Security.Providers.DockerSecrets/Arcus.Security.Providers.DockerSecrets.csproj

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net6.0;netstandard2.1</TargetFrameworks>
4+
<TargetFrameworks>net8.0;net6.0;netstandard2.1</TargetFrameworks>
55
<Authors>Arcus</Authors>
66
<Description>Provides support for Docker Secrets</Description>
77
<Copyright>Copyright (c) Arcus</Copyright>
@@ -23,14 +23,10 @@
2323
<None Include="..\..\docs\static\img\icon.png" Pack="true" PackagePath="\"/>
2424
</ItemGroup>
2525

26-
<ItemGroup Condition="'$(TargetFramework)' == 'net6.0'">
26+
<ItemGroup>
2727
<PackageReference Include="Microsoft.Extensions.Configuration.KeyPerFile" Version="6.0.0" />
2828
</ItemGroup>
2929

30-
<ItemGroup Condition="'$(TargetFramework)' != 'net6.0'">
31-
<PackageReference Include="Microsoft.Extensions.Configuration.KeyPerFile" Version="3.1.7" />
32-
</ItemGroup>
33-
3430
<ItemGroup>
3531
<ProjectReference Include="..\Arcus.Security.Core\Arcus.Security.Core.csproj" />
3632
</ItemGroup>

src/Arcus.Security.Providers.HashiCorp/Arcus.Security.Providers.HashiCorp.csproj

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net6.0;netstandard2.1</TargetFrameworks>
4+
<TargetFrameworks>net8.0;net6.0;netstandard2.1</TargetFrameworks>
55
<Authors>Arcus</Authors>
66
<Description>Provides support for HashiCorp</Description>
77
<Copyright>Copyright (c) Arcus</Copyright>
@@ -23,13 +23,9 @@
2323
<None Include="..\..\docs\static\img\icon.png" Pack="true" PackagePath="\"/>
2424
</ItemGroup>
2525

26-
<ItemGroup Condition="'$(TargetFramework)' == 'net6.0'">
26+
<ItemGroup>
2727
<PackageReference Include="VaultSharp" Version="1.7.0.3" />
2828
</ItemGroup>
29-
30-
<ItemGroup Condition="'$(TargetFramework)' != 'net6.0'">
31-
<PackageReference Include="VaultSharp" Version="1.4.0.5" />
32-
</ItemGroup>
3329

3430
<ItemGroup>
3531
<ProjectReference Include="..\Arcus.Security.Core\Arcus.Security.Core.csproj" />

src/Arcus.Security.Providers.HashiCorp/Configuration/HashiCorpVaultOptions.cs

-4
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,7 @@ namespace Arcus.Security.Providers.HashiCorp.Configuration
99
/// </summary>
1010
public class HashiCorpVaultOptions
1111
{
12-
#if NET6_0
1312
private string _keyValueMountPoint = SecretsEngineMountPoints.Defaults.KeyValueV2;
14-
#else
15-
private string _keyValueMountPoint = SecretsEngineDefaultPaths.KeyValueV2;
16-
#endif
1713
private VaultKeyValueSecretEngineVersion _engineVersion = VaultKeyValueSecretEngineVersion.V2;
1814

1915
/// <summary>

src/Arcus.Security.Providers.HashiCorp/HashiCorpSecretProvider.cs

-4
Original file line numberDiff line numberDiff line change
@@ -138,11 +138,7 @@ protected async Task<SecretData> GetTrackedSecretAsync(string secretName)
138138
};
139139

140140
var isSuccessful = false;
141-
#if NET6_0
142141
using (DurationMeasurement measurement = DurationMeasurement.Start())
143-
#else
144-
using (DependencyMeasurement measurement = DependencyMeasurement.Start())
145-
#endif
146142
{
147143
try
148144
{

src/Arcus.Security.Providers.UserSecrets/Arcus.Security.Providers.UserSecrets.csproj

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net6.0;netstandard2.1;netcoreapp3.1</TargetFrameworks>
4+
<TargetFrameworks>net8.0;net6.0;netstandard2.1</TargetFrameworks>
55
<Authors>Arcus</Authors>
66
<Description>Provides support for User Secrets with Arcus Secret Store</Description>
77
<Copyright>Copyright (c) Arcus</Copyright>
@@ -23,14 +23,10 @@
2323
<None Include="..\..\docs\static\img\icon.png" Pack="true" PackagePath="\"/>
2424
</ItemGroup>
2525

26-
<ItemGroup Condition="'$(TargetFramework)' == 'net6.0'">
26+
<ItemGroup>
2727
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="6.0.0" />
2828
</ItemGroup>
2929

30-
<ItemGroup Condition="'$(TargetFramework)' != 'net6.0'">
31-
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="3.1.8" />
32-
</ItemGroup>
33-
3430
<ItemGroup>
3531
<ProjectReference Include="..\Arcus.Security.Core\Arcus.Security.Core.csproj" />
3632
</ItemGroup>

src/Arcus.Security.Tests.Integration/Arcus.Security.Tests.Integration.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net6.0;netcoreapp3.1</TargetFrameworks>
4+
<TargetFrameworks>net8.0;net6.0</TargetFrameworks>
55
<IsPackable>false</IsPackable>
66
<NoWarn>CS0618</NoWarn>
77
</PropertyGroup>

0 commit comments

Comments
 (0)