From 389e771e227ed174bb5f2b3c69f448f025a12e48 Mon Sep 17 00:00:00 2001 From: Gregorius Soedharmo Date: Thu, 28 Sep 2023 21:58:12 +0700 Subject: [PATCH] Modernize solution (#321) * Modernize solution * Fix typos --- Akka.Quartz.Actor.sln | 25 +++++ build-system/azure-pipeline.template.yaml | 4 + build-system/linux-pr-validation.yaml | 2 +- build-system/windows-release.yaml | 2 +- build.fsx | 98 +++++++++++++----- docs/images/icon.png | Bin 0 -> 7938 bytes .../Akka.Quartz.Actor.IntegrationTests.csproj | 37 ++----- .../App.config | 43 -------- .../QuartzPersistentActorIntegration.cs | 18 ++-- .../Akka.Quartz.Actor.Tests.csproj | 14 +-- src/Akka.Quartz.Actor.Tests/app.config | 15 --- .../Akka.Quartz.Actor.csproj | 13 ++- .../Akka.Quartz.Actor.nuspec | 20 ---- src/Akka.Quartz.Actor/app.config | 19 ---- src/Directory.Build.props | 31 ++++++ src/Directory.Generated.props | 8 ++ src/Directory.Packages.props | 29 ++++++ src/common.props | 22 ---- 18 files changed, 204 insertions(+), 196 deletions(-) create mode 100644 docs/images/icon.png delete mode 100644 src/Akka.Quartz.Actor.IntegrationTests/App.config delete mode 100644 src/Akka.Quartz.Actor.Tests/app.config delete mode 100644 src/Akka.Quartz.Actor/Akka.Quartz.Actor.nuspec delete mode 100644 src/Akka.Quartz.Actor/app.config create mode 100644 src/Directory.Build.props create mode 100644 src/Directory.Generated.props create mode 100644 src/Directory.Packages.props delete mode 100644 src/common.props diff --git a/Akka.Quartz.Actor.sln b/Akka.Quartz.Actor.sln index 3761e5c..a24eb7e 100644 --- a/Akka.Quartz.Actor.sln +++ b/Akka.Quartz.Actor.sln @@ -9,6 +9,28 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Akka.Quartz.Actor.Tests", " EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Akka.Quartz.Actor.IntegrationTests", "src\Akka.Quartz.Actor.IntegrationTests\Akka.Quartz.Actor.IntegrationTests.csproj", "{6F4BDCE1-AFEA-444B-BA13-B560E24C94C6}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{FB34DCD0-D371-472E-8E7D-0B29FE0B6D88}" + ProjectSection(SolutionItems) = preProject + build.cmd = build.cmd + build.fsx = build.fsx + build.ps1 = build.ps1 + README.md = README.md + RELEASE_NOTES.md = RELEASE_NOTES.md + src\Directory.Build.props = src\Directory.Build.props + src\Directory.Generated.props = src\Directory.Generated.props + src\Directory.Packages.props = src\Directory.Packages.props + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build-system", "build-system", "{9B4742AA-8EED-486D-9607-BACFD98D3FB9}" + ProjectSection(SolutionItems) = preProject + build-system\azure-pipeline.template.yaml = build-system\azure-pipeline.template.yaml + build-system\linux-pr-validation.yaml = build-system\linux-pr-validation.yaml + build-system\nightly-builds.yaml = build-system\nightly-builds.yaml + build-system\README.md = build-system\README.md + build-system\windows-pr-validation.yaml = build-system\windows-pr-validation.yaml + build-system\windows-release.yaml = build-system\windows-release.yaml + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -31,4 +53,7 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {9B4742AA-8EED-486D-9607-BACFD98D3FB9} = {FB34DCD0-D371-472E-8E7D-0B29FE0B6D88} + EndGlobalSection EndGlobal diff --git a/build-system/azure-pipeline.template.yaml b/build-system/azure-pipeline.template.yaml index 251a532..1d56c14 100644 --- a/build-system/azure-pipeline.template.yaml +++ b/build-system/azure-pipeline.template.yaml @@ -20,6 +20,10 @@ jobs: displayName: "Use .NET SDK 3.1" inputs: version: 3.1.x + - task: UseDotNet@2 + displayName: "Use .NET 6.0 SDK" + inputs: + version: 6.x # Linux or macOS - task: Bash@3 displayName: Linux / OSX Build diff --git a/build-system/linux-pr-validation.yaml b/build-system/linux-pr-validation.yaml index 1b3a1a2..9b469b9 100644 --- a/build-system/linux-pr-validation.yaml +++ b/build-system/linux-pr-validation.yaml @@ -19,4 +19,4 @@ jobs: name: Ubuntu vmImage: 'ubuntu-latest' scriptFileName: ./build.sh - scriptArgs: all \ No newline at end of file + scriptArgs: RunTestsNet \ No newline at end of file diff --git a/build-system/windows-release.yaml b/build-system/windows-release.yaml index 7853e44..2939b72 100644 --- a/build-system/windows-release.yaml +++ b/build-system/windows-release.yaml @@ -30,7 +30,7 @@ steps: displayName: 'FAKE Build' inputs: filename: build.cmd - arguments: 'All nugetpublishurl=https://www.nuget.org/api/v2/package nugetkey=$(nugetKey)' + arguments: 'All nugetpublishurl=https://api.nuget.org/v3/index.json nugetkey=$(nugetKey)' - task: GitHubRelease@0 displayName: 'GitHub release (create)' diff --git a/build.fsx b/build.fsx index 3045fec..a80cfe2 100644 --- a/build.fsx +++ b/build.fsx @@ -35,6 +35,10 @@ let outputTests = __SOURCE_DIRECTORY__ @@ "TestResults" let outputPerfTests = __SOURCE_DIRECTORY__ @@ "PerfResults" let outputNuGet = output @@ "nuget" +// Configuration values for tests +let testNetFrameworkVersion = "net472" +let testNetVersion = "net6.0" + Target "Clean" (fun _ -> ActivateFinalTarget "KillCreatedProcesses" @@ -43,11 +47,14 @@ Target "Clean" (fun _ -> CleanDir outputPerfTests CleanDir outputNuGet CleanDir "docs/_site" + + CleanDirs !! "./**/bin" + CleanDirs !! "./**/obj" ) Target "AssemblyInfo" (fun _ -> - XmlPokeInnerText "./src/common.props" "//Project/PropertyGroup/VersionPrefix" releaseNotes.AssemblyVersion - XmlPokeInnerText "./src/common.props" "//Project/PropertyGroup/PackageReleaseNotes" (releaseNotes.Notes |> String.concat "\n") + XmlPokeInnerText "./src/Directory.Generated.props" "//Project/PropertyGroup/VersionPrefix" releaseNotes.AssemblyVersion + XmlPokeInnerText "./src/Directory.Generated.props" "//Project/PropertyGroup/PackageReleaseNotes" (releaseNotes.Notes |> String.concat "\n") ) Target "Build" (fun _ -> @@ -84,13 +91,15 @@ Target "RunTests" (fun _ -> let projects = match (isWindows) with | true -> !! "./src/**/*.Tests.csproj" + ++ "./src/**/*.*Tests.csproj" | _ -> !! "./src/**/*.Tests.csproj" // if you need to filter specs for Linux vs. Windows, do it here + ++ "./src/**/*.*Tests.csproj" let runSingleProject project = let arguments = match (hasTeamCity) with - | true -> (sprintf "test -c Release --no-build --logger:trx --logger:\"console;verbosity=normal\" --results-directory %s -- -parallel none -teamcity" (outputTests)) - | false -> (sprintf "test -c Release --no-build --logger:trx --logger:\"console;verbosity=normal\" --results-directory %s -- -parallel none" (outputTests)) + | true -> (sprintf "test -c Release --no-build --logger:trx --logger:\"console;verbosity=normal\" --framework %s --results-directory %s -- -parallel none -teamcity" testNetFrameworkVersion outputTests) + | false -> (sprintf "test -c Release --no-build --logger:trx --logger:\"console;verbosity=normal\" --framework %s --results-directory %s -- -parallel none" testNetFrameworkVersion outputTests) let result = ExecProcess(fun info -> info.FileName <- "dotnet" @@ -99,6 +108,33 @@ Target "RunTests" (fun _ -> ResultHandling.failBuildIfXUnitReportedError TestRunnerErrorLevel.Error result + CreateDir outputTests + projects |> Seq.iter (log) + projects |> Seq.iter (runSingleProject) +) + +Target "RunTestsNet" (fun _ -> + let projects = + match (isWindows) with + | true -> !! "./src/**/*.Tests.csproj" + ++ "./src/**/*.*Tests.csproj" + | _ -> !! "./src/**/*.Tests.csproj" // if you need to filter specs for Linux vs. Windows, do it here + ++ "./src/**/*.*Tests.csproj" + + let runSingleProject project = + let arguments = + match (hasTeamCity) with + | true -> (sprintf "test -c Release --no-build --logger:trx --logger:\"console;verbosity=normal\" --framework %s --results-directory %s -- -parallel none -teamcity" testNetVersion outputTests) + | false -> (sprintf "test -c Release --no-build --logger:trx --logger:\"console;verbosity=normal\" --framework %s --results-directory %s -- -parallel none" testNetVersion outputTests) + + let result = ExecProcess(fun info -> + info.FileName <- "dotnet" + info.WorkingDirectory <- (Directory.GetParent project).FullName + info.Arguments <- arguments) (TimeSpan.FromMinutes 30.0) + + ResultHandling.failBuildIfXUnitReportedError TestRunnerErrorLevel.Error result + + CreateDir outputTests projects |> Seq.iter (log) projects |> Seq.iter (runSingleProject) ) @@ -129,30 +165,32 @@ Target "CreateNuget" (fun _ -> ) Target "PublishNuget" (fun _ -> - let projects = !! "./bin/nuget/*.nupkg" -- "./bin/nuget/*.symbols.nupkg" - let apiKey = getBuildParamOrDefault "nugetkey" "" - let source = getBuildParamOrDefault "nugetpublishurl" "" - let symbolSource = getBuildParamOrDefault "symbolspublishurl" "" - let shouldPublishSymbolsPackages = not (symbolSource = "") - - if (not (source = "") && not (apiKey = "") && shouldPublishSymbolsPackages) then - let runSingleProject project = - DotNetCli.RunCommand - (fun p -> - { p with - TimeOut = TimeSpan.FromMinutes 10. }) - (sprintf "nuget push %s --api-key %s --source %s --symbol-source %s" project apiKey source symbolSource) - - projects |> Seq.iter (runSingleProject) - else if (not (source = "") && not (apiKey = "") && not shouldPublishSymbolsPackages) then - let runSingleProject project = - DotNetCli.RunCommand - (fun p -> - { p with - TimeOut = TimeSpan.FromMinutes 10. }) - (sprintf "nuget push %s --api-key %s --source %s" project apiKey source) - - projects |> Seq.iter (runSingleProject) + let shouldPushNugetPackages = hasBuildParam "nugetkey" + if not shouldPushNugetPackages then () + else + let apiKey = getBuildParam "nugetkey" + let sourceUrl = getBuildParamOrDefault "nugetpublishurl" "https://api.nuget.org/v3/index.json" + + let rec publishPackage retryLeft packageFile = + tracefn "Pushing %s Attempts left: %d" (FullName packageFile) retryLeft + let tracing = ProcessHelper.enableProcessTracing + try + try + ProcessHelper.enableProcessTracing <- false + DotNetCli.RunCommand + (fun p -> + { p with + TimeOut = TimeSpan.FromMinutes 10. }) + (sprintf "nuget push %s --api-key %s --source %s --no-service-endpoint" packageFile apiKey sourceUrl) + with exn -> + if (retryLeft > 0) then (publishPackage (retryLeft-1) packageFile) + finally + ProcessHelper.enableProcessTracing <- tracing + + printfn "Pushing nuget packages" + let normalPackages = !! (outputNuGet @@ "*.nupkg") |> Seq.sortBy(fun x -> x.ToLower()) + for package in normalPackages do + publishPackage 3 package ) //-------------------------------------------------------------------------------- @@ -194,12 +232,15 @@ Target "Help" <| fun _ -> Target "BuildRelease" DoNothing Target "All" DoNothing Target "Nuget" DoNothing +Target "RunTestsFull" DoNothing +Target "RunTestsNetFull" DoNothing // build dependencies "Clean" ==> "AssemblyInfo" ==> "Build" ==> "BuildRelease" // tests dependencies "Build" ==> "RunTests" +"Build" ==> "RunTestsNet" // nuget dependencies "Clean" ==> "Build" ==> "CreateNuget" @@ -211,6 +252,7 @@ Target "Nuget" DoNothing // all "BuildRelease" ==> "All" "RunTests" ==> "All" +"RunTestsNet" ==> "All" "Nuget" ==> "All" RunTargetOrDefault "Help" \ No newline at end of file diff --git a/docs/images/icon.png b/docs/images/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c0f0ca980eed0c552d7fab098af561bcf112a3b8 GIT binary patch literal 7938 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 Y3Igo}#e^H589?u7>E0|x+5GiC0Iv!O7XSbN literal 0 HcmV?d00001 diff --git a/src/Akka.Quartz.Actor.IntegrationTests/Akka.Quartz.Actor.IntegrationTests.csproj b/src/Akka.Quartz.Actor.IntegrationTests/Akka.Quartz.Actor.IntegrationTests.csproj index e67a5a3..3b17c69 100644 --- a/src/Akka.Quartz.Actor.IntegrationTests/Akka.Quartz.Actor.IntegrationTests.csproj +++ b/src/Akka.Quartz.Actor.IntegrationTests/Akka.Quartz.Actor.IntegrationTests.csproj @@ -1,28 +1,15 @@ - - net472 + $(NetFrameworkTestVersion);$(NetTestVersion) - - - - - - - - - - - - - - - - - - - + + + + + + + @@ -30,13 +17,7 @@ - - - - - {80e909a0-2379-408d-9711-70d1bf3147a2} - Akka.Quartz.Actor - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Akka.Quartz.Actor.IntegrationTests/QuartzPersistentActorIntegration.cs b/src/Akka.Quartz.Actor.IntegrationTests/QuartzPersistentActorIntegration.cs index 7925220..45340f5 100644 --- a/src/Akka.Quartz.Actor.IntegrationTests/QuartzPersistentActorIntegration.cs +++ b/src/Akka.Quartz.Actor.IntegrationTests/QuartzPersistentActorIntegration.cs @@ -6,18 +6,25 @@ using Akka.Quartz.Actor.Events; using Quartz; using Xunit; -using System.Data.SQLite; using System.IO; using Microsoft.Data.Sqlite; using System.Collections.Specialized; using Quartz.Impl.AdoJobStore.Common; using System.Data; using Quartz.Impl; +using Xunit.Abstractions; namespace Akka.Quartz.Actor.IntegrationTests { public class QuartzPersistentActorIntegration : TestKit.Xunit2.TestKit, IClassFixture { + private SqliteFixture _fixture; + public QuartzPersistentActorIntegration(ITestOutputHelper output, SqliteFixture fixture) + : base(nameof(QuartzPersistentActorIntegration), output) + { + _fixture = fixture; + } + [Fact] public async Task QuartzPersistentActor_DB_Should_Create_Job() { @@ -61,7 +68,7 @@ public async Task QuartzPersistentActor_DB_Should_Create_Job() Sys.Stop(quartzActor); } - private class SqliteFixture : IDisposable + public class SqliteFixture : IDisposable { private const string DatabaseFileName = "quartz-jobs.db"; @@ -72,12 +79,11 @@ public SqliteFixture() File.Delete(DatabaseFileName); } - SQLiteConnection.CreateFile(DatabaseFileName); - string script = File.ReadAllText("tables_sqlite.sql"); + var script = File.ReadAllText("tables_sqlite.sql"); - using (SQLiteConnection dbConnection = new SQLiteConnection($"Data Source={DatabaseFileName};Version=3;")) + using (var dbConnection = new SqliteConnection($"Data Source={DatabaseFileName};")) { - using (SQLiteCommand command = new SQLiteCommand(script, dbConnection)) + using (var command = new SqliteCommand(script, dbConnection)) { dbConnection.Open(); command.ExecuteNonQuery(); diff --git a/src/Akka.Quartz.Actor.Tests/Akka.Quartz.Actor.Tests.csproj b/src/Akka.Quartz.Actor.Tests/Akka.Quartz.Actor.Tests.csproj index fea6184..96274fa 100644 --- a/src/Akka.Quartz.Actor.Tests/Akka.Quartz.Actor.Tests.csproj +++ b/src/Akka.Quartz.Actor.Tests/Akka.Quartz.Actor.Tests.csproj @@ -1,16 +1,12 @@ - - - net471;netcoreapp3.1 + $(NetFrameworkTestVersion);$(NetTestVersion) - - - - - - + + + + diff --git a/src/Akka.Quartz.Actor.Tests/app.config b/src/Akka.Quartz.Actor.Tests/app.config deleted file mode 100644 index 9a44dcc..0000000 --- a/src/Akka.Quartz.Actor.Tests/app.config +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/src/Akka.Quartz.Actor/Akka.Quartz.Actor.csproj b/src/Akka.Quartz.Actor/Akka.Quartz.Actor.csproj index 401e4b9..0e57aa1 100644 --- a/src/Akka.Quartz.Actor/Akka.Quartz.Actor.csproj +++ b/src/Akka.Quartz.Actor/Akka.Quartz.Actor.csproj @@ -1,11 +1,16 @@  - - netstandard2.0 + $(NetStandardLibVersion) false + icon.png + README.md - - + + + + + + \ No newline at end of file diff --git a/src/Akka.Quartz.Actor/Akka.Quartz.Actor.nuspec b/src/Akka.Quartz.Actor/Akka.Quartz.Actor.nuspec deleted file mode 100644 index df6238a..0000000 --- a/src/Akka.Quartz.Actor/Akka.Quartz.Actor.nuspec +++ /dev/null @@ -1,20 +0,0 @@ - - - - @project@ - @project@@title@ - @build.number@ - @authors@ - @authors@ - Quartz integration plugin for Akka.NET. - https://github.com/akkadotnet/Akka.Quartz.Actor/blob/master/LICENSE - https://github.com/akkadotnet/Akka.Quartz.Actor - http://getakka.net/images/AkkaNetLogo.Normal.png - false - @releaseNotes@ - @copyright@ - @tags@ - @dependencies@ - @references@ - - \ No newline at end of file diff --git a/src/Akka.Quartz.Actor/app.config b/src/Akka.Quartz.Actor/app.config deleted file mode 100644 index 3faa4b2..0000000 --- a/src/Akka.Quartz.Actor/app.config +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/src/Directory.Build.props b/src/Directory.Build.props new file mode 100644 index 0000000..587974f --- /dev/null +++ b/src/Directory.Build.props @@ -0,0 +1,31 @@ + + + + Copyright © 2015-2021 .NET Foundation + Akka + $(NoWarn);CS1591 + + + + net472 + netstandard2.0 + net6.0 + + + + + + + + + true + + true + + true + snupkg + akka;streams;quartz + https://github.com/akkadotnet/Akka.Quartz.Actor + Apache-2.0 + + \ No newline at end of file diff --git a/src/Directory.Generated.props b/src/Directory.Generated.props new file mode 100644 index 0000000..45d5f08 --- /dev/null +++ b/src/Directory.Generated.props @@ -0,0 +1,8 @@ + + + 1.5.12 + [Update Akka.NET to v1.5.12](https://github.com/akkadotnet/akka.net/releases/tag/1.5.12) +[Fix persisted job serialization to always serialize using object serializer](https://github.com/akkadotnet/Akka.Quartz.Actor/pull/312) +Upgraded all other dependencies + + \ No newline at end of file diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props new file mode 100644 index 0000000..8d81d5f --- /dev/null +++ b/src/Directory.Packages.props @@ -0,0 +1,29 @@ + + + true + 1.5.12 + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/common.props b/src/common.props deleted file mode 100644 index a2e2f8c..0000000 --- a/src/common.props +++ /dev/null @@ -1,22 +0,0 @@ - - - Copyright © 2015-2021 .NET Foundation - Akka - 1.5.1 - Updated Akka to 1.5.1 -upgraded to Quartz.NET 3.6.2 - http://getakka.net/images/akkalogo.png - https://github.com/akkadotnet/Akka.Quartz.Actor - https://github.com/akkadotnet/Akka.Quartz.Actor/blob/master/LICENSE - akka streams quartz - - - - - 1.5.12 - 3.7.0 - 2.5.0 - 2.5.0 - 17.7.2 - - \ No newline at end of file