Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions .azure-pipelines/build-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,10 @@ jobs:
${{ if eq(parameters.targetFramework, 'all') }}:
strategy:
matrix:
NET6.0:
targetFramework: 'net6.0'
NET8.0:
targetFramework: 'net8.0'
NET10.0:
targetFramework: 'net10.0'


${{ if ne(parameters.container, '') }}:
Expand Down Expand Up @@ -218,10 +218,12 @@ jobs:

# Code coverage
- ${{ if and(parameters.codeCoverage, parameters.unitTests, parameters.functionalTests) }}:
- script: dotnet tool install --global dotnet-reportgenerator-globaltool
displayName: Install Report Generator
- script: |
dotnet tool install --global dotnet-reportgenerator-globaltool
dotnet tool install --global dotnet-coverage
displayName: Install Code Coverage and Report Generator

- script: ${{ variables.devCommand }} report
- script: "${{ variables.devCommand }} report $(targetFramework) Debug ${{ parameters.os }}-${{ parameters.arch }}"
displayName: Generate Code Coverage report
workingDirectory: src

Expand Down
4 changes: 2 additions & 2 deletions .azure-pipelines/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -113,10 +113,10 @@ extends:
${{ if eq(parameters.targetFramework, 'all') }}:
strategy:
matrix:
NET6.0:
targetFramework: 'net6.0'
NET8.0:
targetFramework: 'net8.0'
NET10.0:
targetFramework: 'net10.0'
pool:
name: 1ES-ABTT-Shared-Pool
image: abtt-ubuntu-2404
Expand Down
2 changes: 1 addition & 1 deletion .vsts.ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ extends:
publishArtifacts: ${{ ne(variables['Build.Reason'], 'PullRequest') }}
buildAlternatePackage: false
testProxyAgent: ${{ parameters.testProxyAgent }}
targetFramework: 'net8.0'
targetFramework: 'all'
win_x64: ${{ parameters.win_x64 }}
win_x86: ${{ parameters.win_x86 }}
win_arm64: ${{ parameters.win_arm64 }}
Expand Down
7 changes: 4 additions & 3 deletions .vsts.release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ parameters:
default: net8.0
values:
- net8.0
- net10.0

- name: derivedFrom
type: string
Expand Down Expand Up @@ -145,9 +146,9 @@ extends:

## Verify target framework for specified version
$majorVersion = $agentVersion.Split('.')[0]
if (("${{ parameters.targetFramework }}" -eq "net6.0" -and $majorVersion -ne "3") -or
("${{ parameters.targetFramework }}" -eq "net8.0" -and $majorVersion -ne "4")) {
Write-Error "The major version should be 3 for net6.0 and 4 for net8.0" -ErrorAction Stop
if (("${{ parameters.targetFramework }}" -eq "net8.0" -and $majorVersion -ne "4") -or
("${{ parameters.targetFramework }}" -eq "net10.0" -and $majorVersion -ne "5")) {
Write-Error "The major version should be 4 for net8.0 and 5 for net10.0" -ErrorAction Stop
}
}
if ($isTestRun) {
Expand Down
8 changes: 4 additions & 4 deletions src/Agent.Listener/Agent.Listener.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@
<PackageReference Include="CommandLineParser" Version="2.7.82" />
<PackageReference Include="Microsoft.TeamFoundationServer.Client" Version="19.230.0-preview" />
<PackageReference Include="Microsoft.VisualStudio.Services.InteractiveClient" Version="19.230.0-preview" />
<PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" />
<PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" Condition="$(TargetFramework.StartsWith('net8'))" />
<PackageReference Include="System.IO.FileSystem.AccessControl" Version="6.0.0-preview.5.21301.5" />
<PackageReference Include="System.ServiceProcess.ServiceController" Version="6.0.1" />
<PackageReference Include="vss-api-netcore" Version="$(VssApiVersion)" />
<PackageReference Include="System.Security.Cryptography.Pkcs" Version="7.0.2" />
<PackageReference Include="Microsoft.Azure.Storage.DataMovement" Version="2.0.5" />
<PackageReference Include="System.Private.Uri" Version="4.3.2" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" />
<PackageReference Include="System.Private.Uri" Version="4.3.2" Condition="$(TargetFramework.StartsWith('net8'))" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" Condition="$(TargetFramework.StartsWith('net8'))" />
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" Condition="$(TargetFramework.StartsWith('net8'))" />
</ItemGroup>

<ItemGroup>
Expand Down
4 changes: 4 additions & 0 deletions src/Agent.Listener/ValidationHelper/InstallerVerifier.cs
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,8 @@ public static void VerifyFileSignedByMicrosoft(string filePath, Tracing trace, s
CRYPT_PROVIDER_CERT provCert = (CRYPT_PROVIDER_CERT)Marshal.PtrToStructure(pProviderCertificate, typeof(CRYPT_PROVIDER_CERT));

// Check for our EKU in the certificate
// Disable the warning. TODO: Remove this warning suppression after the code is refactored to use X509CertificateLoader instead.
#pragma warning disable SYSLIB0057
using (X509Certificate2 x509Cert = new X509Certificate2(provCert.pCert))
{
if (((X509EnhancedKeyUsageExtension)x509Cert.Extensions[EXTENDED_KEY_USAGE]).EnhancedKeyUsages[expectedEKU] == null)
Expand All @@ -121,6 +123,8 @@ public static void VerifyFileSignedByMicrosoft(string filePath, Tracing trace, s

trace.Info(String.Format("Authenticode signature for file {0} is signed with a certificate containing the EKU {1}.", filePath, expectedEKU));
}
// Re-enable the warning.
#pragma warning restore SYSLIB0057
}
finally
{
Expand Down
8 changes: 4 additions & 4 deletions src/Agent.PluginHost/Agent.PluginHost.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@
<ProjectReference Include="..\Agent.Sdk\Agent.Sdk.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="System.Runtime.Loader" Version="4.3.0" />
<PackageReference Include="System.Runtime.Loader" Version="4.3.0" Condition="$(TargetFramework.StartsWith('net8'))" />
<PackageReference Include="System.Data.SqlClient" Version="4.8.6" />
<PackageReference Include="vss-api-netcore" Version="$(VssApiVersion)" />
<PackageReference Include="Microsoft.Azure.Storage.DataMovement" Version="2.0.5" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
<PackageReference Include="System.Private.Uri" Version="4.3.2" />
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" Condition="$(TargetFramework.StartsWith('net8'))" />
<PackageReference Include="System.Private.Uri" Version="4.3.2" Condition="$(TargetFramework.StartsWith('net8'))" />
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" Condition="$(TargetFramework.StartsWith('net8'))" />
</ItemGroup>
</Project>
6 changes: 3 additions & 3 deletions src/Agent.Plugins/Agent.Plugins.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
<PackageReference Include="vss-api-netcore" Version="$(VssApiVersion)" />
<PackageReference Include="System.Security.Cryptography.Pkcs" Version="7.0.2" />
<PackageReference Include="Microsoft.Azure.Storage.DataMovement" Version="2.0.5" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
<PackageReference Include="System.Private.Uri" Version="4.3.2" />
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" Condition="$(TargetFramework.StartsWith('net8'))" />
<PackageReference Include="System.Private.Uri" Version="4.3.2" Condition="$(TargetFramework.StartsWith('net8'))" />
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" Condition="$(TargetFramework.StartsWith('net8'))" />
</ItemGroup>
</Project>
6 changes: 5 additions & 1 deletion src/Agent.Plugins/TFCliManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -158,14 +158,18 @@ public void SetupProxy(string proxyUrl, string proxyUsername, string proxyPasswo
}

public void SetupClientCertificate(string clientCert, string clientCertKey, string clientCertArchive, string clientCertPassword)
{
{ // Disable the warning. TODO: Remove this warning suppression after the code is refactored to use X509CertificateLoader instead.
#pragma warning disable SYSLIB0057
ArgUtil.File(clientCert, nameof(clientCert));
X509Certificate2 cert = new X509Certificate2(clientCert);
ExecutionContext.Debug($"Set VstsClientCertificate={cert.Thumbprint} for Tf.exe to support client certificate.");
AdditionalEnvironmentVariables["VstsClientCertificate"] = cert.Thumbprint;

// Script Tf commands in tasks
ExecutionContext.SetVariable("VstsClientCertificate", cert.Thumbprint);

// Re-enable the warning.
#pragma warning restore SYSLIB0057
}

public async Task ShelveAsync(string shelveset, string commentFile, bool move)
Expand Down
12 changes: 6 additions & 6 deletions src/Agent.Sdk/Agent.Sdk.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,21 @@

<ItemGroup>
<PackageReference Include="Microsoft.Security.Utilities.Core" Version="1.19.0" />
<PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" />
<PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" Condition="$(TargetFramework.StartsWith('net8'))" />
<PackageReference Include="System.IO.FileSystem.AccessControl" Version="6.0.0-preview.5.21301.5" />
<PackageReference Include="System.Management" Version="4.7.0" />
<PackageReference Include="System.ServiceProcess.ServiceController" Version="6.0.1" />
<PackageReference Include="System.Security.Principal.Windows" Version="6.0.0-preview.5.21301.5" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.4.0" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.4.0" Condition="$(TargetFramework.StartsWith('net8'))" />
<PackageReference Include="System.Data.SqlClient" Version="4.8.6" />
<PackageReference Include="Microsoft.Azure.Storage.DataMovement" Version="2.0.5" />
<PackageReference Include="vss-api-netcore" Version="$(VssApiVersion)" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
<PackageReference Include="System.Private.Uri" Version="4.3.2" />
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" Condition="$(TargetFramework.StartsWith('net8'))" />
<PackageReference Include="System.Private.Uri" Version="4.3.2" Condition="$(TargetFramework.StartsWith('net8'))" />
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" Condition="$(TargetFramework.StartsWith('net8'))" />
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="7.3.1" />
<PackageReference Include="System.Security.Cryptography.Xml" Version="6.0.1" />
<PackageReference Include="System.Threading.Tasks.Dataflow" Version="8.0.0" />
<PackageReference Include="System.Threading.Tasks.Dataflow" Version="8.0.0" Condition="$(TargetFramework.StartsWith('net8'))" />
<PackageReference Include="Azure.Core" Version="1.44.1" />
</ItemGroup>
</Project>
4 changes: 4 additions & 0 deletions src/Agent.Sdk/AgentClientCertificateManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,11 @@ public void AddClientCertificate(string clientCertificateArchiveFile, string cli
{
if (!string.IsNullOrEmpty(clientCertificateArchiveFile))
{
// Disable the warning. TODO: Remove this warning suppression after the code is refactored to use X509CertificateLoader instead.
#pragma warning disable SYSLIB0057
_clientCertificates.Add(new X509Certificate2(clientCertificateArchiveFile, clientCertificatePassword));
// Re-enable the warning.
#pragma warning restore SYSLIB0057
}
}
}
Expand Down
6 changes: 3 additions & 3 deletions src/Agent.Worker/Agent.Worker.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
<PackageReference Include="vss-api-netcore" Version="$(VssApiVersion)" />
<PackageReference Include="System.Security.Cryptography.Pkcs" Version="7.0.2" />
<PackageReference Include="Microsoft.Azure.Storage.DataMovement" Version="2.0.5" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
<PackageReference Include="System.Private.Uri" Version="4.3.2" />
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" Condition="$(TargetFramework.StartsWith('net8'))" />
<PackageReference Include="System.Private.Uri" Version="4.3.2" Condition="$(TargetFramework.StartsWith('net8'))" />
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" Condition="$(TargetFramework.StartsWith('net8'))" />
</ItemGroup>
</Project>
5 changes: 5 additions & 0 deletions src/Agent.Worker/Build/TFCommandManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -156,13 +156,18 @@ public void SetupProxy(string proxyUrl, string proxyUsername, string proxyPasswo

public void SetupClientCertificate(string clientCert, string clientCertKey, string clientCertArchive, string clientCertPassword)
{
// Disable the warning. TODO: Remove this warning suppression after the code is refactored to use X509CertificateLoader instead.
#pragma warning disable SYSLIB0057
ArgUtil.File(clientCert, nameof(clientCert));
X509Certificate2 cert = new X509Certificate2(clientCert);
ExecutionContext.Debug($"Set VstsClientCertificate={cert.Thumbprint} for Tf.exe to support client certificate.");
AdditionalEnvironmentVariables["VstsClientCertificate"] = cert.Thumbprint;

// Script Tf commands in tasks
ExecutionContext.SetVariable("VstsClientCertificate", cert.Thumbprint, false, false);

// Re-enable the warning.
#pragma warning restore SYSLIB0057
}

public async Task ShelveAsync(string shelveset, string commentFile, bool move)
Expand Down
3 changes: 2 additions & 1 deletion src/Common.props
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
<Project>
<PropertyGroup>
<LangVersion>10.0</LangVersion>
<TargetFrameworks>net8.0;net6.0</TargetFrameworks>
Comment thread
tarunramsinghani marked this conversation as resolved.
<TargetFramework Condition="'$(NetTargetFramework)' != ''">$(NetTargetFramework)</TargetFramework>
Comment thread
rajmishra1997 marked this conversation as resolved.
<TargetFramework Condition="'$(NetTargetFramework)' == ''">net8.0</TargetFramework>
<RuntimeIdentifier Condition="'$(BuildingInsideVisualStudio)' != 'true'">$(PackageRuntime)</RuntimeIdentifier>
<SelfContained>true</SelfContained>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,17 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" />
<PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" Condition="$(TargetFramework.StartsWith('net8'))" />
<PackageReference Include="System.Data.SqlClient" Version="4.8.6" />
<PackageReference Include="System.Security.Cryptography.Xml" Version="6.0.1" />
<PackageReference Include="System.Security.Principal.Windows" Version="6.0.0-preview.5.21301.5" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.4.0" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.4.0" Condition="$(TargetFramework.StartsWith('net8'))" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" Condition="$(TargetFramework.StartsWith('net8'))" />
Comment thread
tarunramsinghani marked this conversation as resolved.
<PackageReference Include="vss-api-netcore" Version="$(VssApiVersion)" />
<PackageReference Include="System.Security.Cryptography.Pkcs" Version="7.0.2" />
<PackageReference Include="Microsoft.Azure.Storage.DataMovement" Version="2.0.5" />
<PackageReference Include="System.Private.Uri" Version="4.3.2" />
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" />
<PackageReference Include="System.Private.Uri" Version="4.3.2" Condition="$(TargetFramework.StartsWith('net8'))" />
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" Condition="$(TargetFramework.StartsWith('net8'))" />
</ItemGroup>

</Project>
1 change: 1 addition & 0 deletions src/Test/CodeCoverage.runsettings
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
<ModulePaths>
<Exclude>
<ModulePath>.*buildxl.*</ModulePath>
<ModulePath>.*System.*</ModulePath>
<ModulePath>.*ncrontab.*</ModulePath>
<ModulePath>.*runtimecontracts\.dll</ModulePath>
<ModulePath>.*test\.dll</ModulePath>
Expand Down
18 changes: 11 additions & 7 deletions src/Test/Test.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,24 @@

<ItemGroup>
<PackageReference Include="azuredevops-testresultparser" Version="1.0.2" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
<PackageReference Include="Microsoft.CodeCoverage" Version="16.4.0" />
<PackageReference Include="Microsoft.TestPlatform.TestHost" Version="16.4.0" GeneratePathProperty="true" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="Microsoft.CodeCoverage" Version="18.0.1" />
<!-- With Test.Sdk > 16.4.0 TestHost.exe unable to respect DOTNET_ROOT.
VSTest will use dotnet testhost.dll instead which properly respects DOTNET_ROOT. -->
<PackageReference Include="Microsoft.TestPlatform.TestHost" Version="18.0.1" GeneratePathProperty="true">
<ExcludeAssets>build</ExcludeAssets>
</PackageReference>
<PackageReference Include="Moq" Version="4.20.70" />
<PackageReference Include="System.Reflection.TypeExtensions" Version="4.4.0" />
<PackageReference Include="System.Threading.ThreadPool" Version="4.3.0" />
<PackageReference Include="System.Threading.ThreadPool" Version="4.3.0" Condition="$(TargetFramework.StartsWith('net8'))" />
<PackageReference Include="vss-api-netcore" Version="$(VssApiVersion)" />
<PackageReference Include="xunit" Version="2.2.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
<PackageReference Include="System.Security.Cryptography.Pkcs" Version="7.0.2" />
<PackageReference Include="Microsoft.Azure.Storage.DataMovement" Version="2.0.5" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
<PackageReference Include="System.Private.Uri" Version="4.3.2" />
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" Condition="$(TargetFramework.StartsWith('net8'))" />
<PackageReference Include="System.Private.Uri" Version="4.3.2" Condition="$(TargetFramework.StartsWith('net8'))" />
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" Condition="$(TargetFramework.StartsWith('net8'))" />
</ItemGroup>

<ItemGroup>
Expand Down
Loading
Loading