Skip to content

Commit

Permalink
Improve testing for previous sdks (#229)
Browse files Browse the repository at this point in the history
  • Loading branch information
tl-Roberto-Mancinelli authored Nov 26, 2024
1 parent 22cfd49 commit cec395c
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 96 deletions.
14 changes: 13 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,25 @@ on:

jobs:
build:
runs-on: ubuntu-24.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET 9.0
uses: actions/setup-dotnet@v2
with:
dotnet-version: 9.0.x
- name: Setup .NET 8.0
uses: actions/setup-dotnet@v2
with:
dotnet-version: 8.0.x
- name: Setup .NET 6.0
uses: actions/setup-dotnet@v2
with:
dotnet-version: 6.0.x
- name: Setup .NET 3.1
uses: actions/setup-dotnet@v2
with:
dotnet-version: 3.1.x
- name: Restore tools
run: dotnet tool restore
- name: Run the build script
Expand Down
14 changes: 13 additions & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,25 @@ on:
default: 'false'
jobs:
publish:
runs-on: ubuntu-24.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET 9.0
uses: actions/setup-dotnet@v2
with:
dotnet-version: 9.0.x
- name: Setup .NET 8.0
uses: actions/setup-dotnet@v2
with:
dotnet-version: 8.0.x
- name: Setup .NET 6.0
uses: actions/setup-dotnet@v2
with:
dotnet-version: 6.0.x
- name: Setup .NET 3.1
uses: actions/setup-dotnet@v2
with:
dotnet-version: 3.1.x
- name: Restore tools
run: dotnet tool restore
- name: Run the build script
Expand Down
93 changes: 1 addition & 92 deletions build.cake
Original file line number Diff line number Diff line change
@@ -1,18 +1,9 @@
// Install .NET Core Global tools.
#tool "dotnet:?package=dotnet-reportgenerator-globaltool&version=5.4.1"
#tool "dotnet:?package=coveralls.net&version=4.0.1"
#tool "dotnet:?package=dotnet-sonarscanner&version=9.0.2"
#tool nuget:?package=KuduSync.NET&version=1.5.4

// Install addins
#addin nuget:?package=Cake.Coverlet&version=4.0.1
#addin nuget:?package=Cake.Sonar&version=1.1.33
#addin nuget:?package=Cake.Git&version=4.0.0
#addin nuget:?package=Cake.Kudu&version=3.0.0

#r "System.Text.Json"
#r "System.IO"
#r "System"

///////////////////////////////////////////////////////////////////////////////
// ARGUMENTS
Expand All @@ -25,14 +16,6 @@ var coveragePath = "./artifacts/coverage";
var packFiles = "./src/**/*.csproj";
var testFiles = "./test/**/*.csproj";
var packages = "./artifacts/*.nupkg";
DirectoryPath sitePath = "./artifacts/docs";
var docFxConfig = "./docs/docfx.json";

var coverallsToken = EnvironmentVariable("COVERALLS_TOKEN");
var sonarToken = EnvironmentVariable("SONAR_TOKEN");
var gitHubUser = EnvironmentVariable("GITHUB_ACTOR");
var gitHubPagesToken = EnvironmentVariable("GITHUB_TOKEN");
GitBranch currentBranch = GitBranchCurrent("./");

uint coverageThreshold = 50;

Expand All @@ -43,7 +26,7 @@ uint coverageThreshold = 50;
Setup(context =>
{
BuildContext.Initialize(Context);
Information($"Building TrueLayer.NET with configuration {configuration} on branch {currentBranch.FriendlyName}");
Information($"Building TrueLayer.NET with configuration {configuration}");
});

Teardown(ctx =>
Expand All @@ -70,22 +53,6 @@ Task("Clean")
CleanDirectories(artifactsPath);
});

Task("SonarBegin")
.WithCriteria(!string.IsNullOrEmpty(sonarToken))
.Does(() =>
{
SonarBegin(new SonarBeginSettings
{
Key = "TrueLayer_truelayer-dotnet",
Organization = "truelayer",
Url = "https://sonarcloud.io",
Exclusions = "test/**,examples/**",
OpenCoverReportsPath = $"{coveragePath}/*.xml",
Token = sonarToken,
VsTestReportsPath = $"{artifactsPath}/*.TestResults.xml",
});
});

Task("Build")
.Does(() =>
{
Expand Down Expand Up @@ -124,7 +91,6 @@ Task("Test")
}
});


Task("Pack")
.Does(() =>
{
Expand All @@ -150,50 +116,6 @@ Task("GenerateReports")
});
});

Task("UploadCoverage")
.WithCriteria(!string.IsNullOrEmpty(coverallsToken) && BuildSystem.IsRunningOnGitHubActions)
.Does(() =>
{
var workflow = BuildSystem.GitHubActions.Environment.Workflow;

Dictionary<string, object> @event = default;
if (workflow.EventName == "pull_request")
{
string eventJson = System.IO.File.ReadAllText(workflow.EventPath.ToString());
@event = System.Text.Json.JsonSerializer.Deserialize<Dictionary<string, object>>(eventJson);
}

var args = new ProcessArgumentBuilder()
.Append($"--repoToken {coverallsToken}")
.Append("--lcov")
.Append("--useRelativePaths")
.Append("-i ./artifacts/lcov.info")
.Append($"--commitId {workflow.Sha}")
.Append($"--commitBranch {workflow.Ref}")
.Append($"--serviceNumber {workflow.RunNumber}")
.Append($"--jobId {workflow.RunId}");
//.Append("--dryrun");

if (BuildSystem.IsPullRequest)
{
args.Append($"--pullRequest {@event["number"].ToString()}");
}

var settings = new ProcessSettings { Arguments = args };

// We have to start the process manually since the cake addin forces us to provide
// a format enum which currently doesn't include lcov
if (StartProcess(
Context.Tools.Resolve("csmacnz.Coveralls")
?? Context.Tools.Resolve("csmacnz.coveralls.exe")
?? throw new Exception("Failed to resolve Coveralls shim."),
settings
) != 0)
{
throw new Exception("Failed to execute Coveralls.");
}
});

Task("PublishPackages")
.WithCriteria(() => BuildContext.ShouldPublishToNuget)
.Does(() =>
Expand All @@ -208,16 +130,6 @@ Task("PublishPackages")
}
});

Task("SonarEnd")
.WithCriteria(!string.IsNullOrEmpty(sonarToken))
.Does(() =>
{
SonarEnd(new SonarEndSettings
{
Token = sonarToken
});
});

Task("Dump").Does(() => BuildContext.PrintParameters(Context));

Task("Default")
Expand All @@ -228,10 +140,7 @@ Task("Default")
.IsDependentOn("GenerateReports");

Task("CI")
//.IsDependentOn("SonarBegin")
.IsDependentOn("Default");
//.IsDependentOn("UploadCoverage")
//.IsDependentOn("SonarEnd");

Task("Publish")
.IsDependentOn("CI")
Expand Down
2 changes: 1 addition & 1 deletion test/TrueLayer.Tests/Mocks/AuthApiMock.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,6 @@ public void SetGetAuthToken(ApiResponse<GetAuthTokenResponse> response)

public ValueTask<ApiResponse<GetAuthTokenResponse>> GetAuthToken(GetAuthTokenRequest authTokenRequest, CancellationToken cancellationToken = default)
{
return ValueTask.FromResult(_response!);
return new ValueTask<ApiResponse<GetAuthTokenResponse>>(_response!);
}
}
2 changes: 1 addition & 1 deletion test/TrueLayer.Tests/TrueLayer.Tests.csproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<TargetFrameworks>net9.0;net8.0;net6.0;netcoreapp3.1</TargetFrameworks>
<IsPackable>false</IsPackable>
<Nullable>enable</Nullable>
<WarningsAsErrors>nullable;</WarningsAsErrors>
Expand Down

0 comments on commit cec395c

Please sign in to comment.