From 5f9156f6c24774c13279b8664065fabdf061858b Mon Sep 17 00:00:00 2001 From: "Daniel J. Summers" Date: Fri, 8 Jul 2022 22:46:50 -0400 Subject: [PATCH] Add FAKE build script --- .config/dotnet-tools.json | 12 + build.fsx | 74 ++++++ build.fsx.lock | 232 ++++++++++++++++++ fake.cmd | 2 + fake.sh | 7 + src/JobsJobsJobs/App/package.json | 4 +- src/JobsJobsJobs/Directory.Build.props | 7 +- .../Domain/JobsJobsJobs.Domain.fsproj | 1 - .../Server/JobsJobsJobs.Server.fsproj | 3 +- 9 files changed, 334 insertions(+), 8 deletions(-) create mode 100644 .config/dotnet-tools.json create mode 100644 build.fsx create mode 100644 build.fsx.lock create mode 100644 fake.cmd create mode 100755 fake.sh diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json new file mode 100644 index 0000000..37fc584 --- /dev/null +++ b/.config/dotnet-tools.json @@ -0,0 +1,12 @@ +{ + "version": 1, + "isRoot": true, + "tools": { + "fake-cli": { + "version": "5.22.0", + "commands": [ + "fake" + ] + } + } +} \ No newline at end of file diff --git a/build.fsx b/build.fsx new file mode 100644 index 0000000..d54b8bc --- /dev/null +++ b/build.fsx @@ -0,0 +1,74 @@ +#r "paket: +nuget Fake.DotNet.Cli +nuget Fake.IO.FileSystem +nuget Fake.JavaScript.Npm +nuget Fake.Core.Target //" +#load ".fake/build.fsx/intellisense.fsx" +open Fake.Core +open Fake.DotNet +open Fake.IO +open Fake.IO.Globbing.Operators +open Fake.JavaScript +open Fake.Core.TargetOperators + +/// The path to the Vue client +let clientPath = "src/JobsJobsJobs/App" + +/// The path to the API server +let serverPath = "src/JobsJobsJobs/Server" + +Target.initEnvironment () + +Target.create "Clean" (fun _ -> + !! "src/**/bin" + ++ "src/**/obj" + ++ $"{serverPath}/wwwroot" + |> Shell.cleanDirs +) + +Target.create "BuildClient" (fun _ -> + let inClientPath (opts : Npm.NpmParams) = { opts with WorkingDirectory = clientPath } + Npm.install inClientPath + Npm.run "build" inClientPath +) + +Target.create "BuildServer" (fun _ -> + DotNet.build (fun opts -> { opts with NoLogo = true }) serverPath +) + +Target.create "RunServer" (fun _ -> + DotNet.exec (fun opts -> { opts with WorkingDirectory = serverPath }) "run" "" |> ignore +) + +Target.create "Publish" (fun _ -> + DotNet.publish + (fun opts -> { opts with Runtime = Some "linux-x64"; SelfContained = Some false; NoLogo = true }) + serverPath +) + +Target.create "BuildAndRun" ignore +Target.create "All" ignore + +"Clean" + ==> "All" +"Clean" + ==> "Publish" +"Clean" + ?=> "BuildClient" +"Clean" + ==> "BuildAndRun" + +"BuildClient" + ==> "All" +"BuildClient" + ?=> "BuildServer" +"BuildClient" + ==> "RunServer" + ==> "BuildAndRun" +"BuildClient" + ==> "Publish" + +"BuildServer" + ==> "All" + +Target.runOrDefault "All" diff --git a/build.fsx.lock b/build.fsx.lock new file mode 100644 index 0000000..3d3a148 --- /dev/null +++ b/build.fsx.lock @@ -0,0 +1,232 @@ +STORAGE: NONE +RESTRICTION: || (== net6.0) (== netstandard2.0) +NUGET + remote: https://api.nuget.org/v3/index.json + BlackFox.VsWhere (1.1) + FSharp.Core (>= 4.2.3) + Microsoft.Win32.Registry (>= 4.7) + Fake.Core.CommandLineParsing (5.22) + FParsec (>= 1.1.1) + FSharp.Core (>= 6.0) + Fake.Core.Context (5.22) + FSharp.Core (>= 6.0) + Fake.Core.Environment (5.22) + FSharp.Core (>= 6.0) + Fake.Core.FakeVar (5.22) + Fake.Core.Context (>= 5.22) + FSharp.Core (>= 6.0) + Fake.Core.Process (5.22) + Fake.Core.Environment (>= 5.22) + Fake.Core.FakeVar (>= 5.22) + Fake.Core.String (>= 5.22) + Fake.Core.Trace (>= 5.22) + Fake.IO.FileSystem (>= 5.22) + FSharp.Core (>= 6.0) + System.Collections.Immutable (>= 5.0) + Fake.Core.SemVer (5.22) + FSharp.Core (>= 6.0) + Fake.Core.String (5.22) + FSharp.Core (>= 6.0) + Fake.Core.Target (5.22) + Fake.Core.CommandLineParsing (>= 5.22) + Fake.Core.Context (>= 5.22) + Fake.Core.Environment (>= 5.22) + Fake.Core.FakeVar (>= 5.22) + Fake.Core.Process (>= 5.22) + Fake.Core.String (>= 5.22) + Fake.Core.Trace (>= 5.22) + FSharp.Control.Reactive (>= 5.0.2) + FSharp.Core (>= 6.0) + Fake.Core.Tasks (5.22) + Fake.Core.Trace (>= 5.22) + FSharp.Core (>= 6.0) + Fake.Core.Trace (5.22) + Fake.Core.Environment (>= 5.22) + Fake.Core.FakeVar (>= 5.22) + FSharp.Core (>= 6.0) + Fake.Core.Xml (5.22) + Fake.Core.String (>= 5.22) + FSharp.Core (>= 6.0) + Fake.DotNet.Cli (5.22) + Fake.Core.Environment (>= 5.22) + Fake.Core.Process (>= 5.22) + Fake.Core.String (>= 5.22) + Fake.Core.Trace (>= 5.22) + Fake.DotNet.MSBuild (>= 5.22) + Fake.DotNet.NuGet (>= 5.22) + Fake.IO.FileSystem (>= 5.22) + FSharp.Core (>= 6.0) + Mono.Posix.NETStandard (>= 1.0) + Newtonsoft.Json (>= 13.0.1) + Fake.DotNet.MSBuild (5.22) + BlackFox.VsWhere (>= 1.1) + Fake.Core.Environment (>= 5.22) + Fake.Core.Process (>= 5.22) + Fake.Core.String (>= 5.22) + Fake.Core.Trace (>= 5.22) + Fake.IO.FileSystem (>= 5.22) + FSharp.Core (>= 6.0) + MSBuild.StructuredLogger (>= 2.1.545) + Fake.DotNet.NuGet (5.22) + Fake.Core.Environment (>= 5.22) + Fake.Core.Process (>= 5.22) + Fake.Core.SemVer (>= 5.22) + Fake.Core.String (>= 5.22) + Fake.Core.Tasks (>= 5.22) + Fake.Core.Trace (>= 5.22) + Fake.Core.Xml (>= 5.22) + Fake.IO.FileSystem (>= 5.22) + Fake.Net.Http (>= 5.22) + FSharp.Core (>= 6.0) + Newtonsoft.Json (>= 13.0.1) + NuGet.Protocol (>= 5.11) + Fake.IO.FileSystem (5.22) + Fake.Core.String (>= 5.22) + FSharp.Core (>= 6.0) + Fake.JavaScript.Npm (5.22) + Fake.Core.Environment (>= 5.22) + Fake.Core.Process (>= 5.22) + Fake.IO.FileSystem (>= 5.22) + Fake.Testing.Common (>= 5.22) + FSharp.Core (>= 6.0) + Fake.Net.Http (5.22) + Fake.Core.Trace (>= 5.22) + FSharp.Core (>= 6.0) + Fake.Testing.Common (5.22) + Fake.Core.Trace (>= 5.22) + FSharp.Core (>= 6.0) + FParsec (1.1.1) + FSharp.Core (>= 4.3.4) + FSharp.Control.Reactive (5.0.5) + FSharp.Core (>= 4.7.2) + System.Reactive (>= 5.0 < 6.0) + FSharp.Core (6.0.5) + Microsoft.Build (17.2) + Microsoft.Build.Framework (>= 17.2) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net6.0)) + Microsoft.NET.StringTools (>= 1.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net6.0)) + Microsoft.Win32.Registry (>= 4.3) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) + System.Collections.Immutable (>= 5.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net6.0)) + System.Configuration.ConfigurationManager (>= 4.7) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net6.0)) + System.Reflection.Metadata (>= 1.6) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) + System.Security.Principal.Windows (>= 4.7) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) + System.Text.Encoding.CodePages (>= 4.0.1) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) + System.Text.Json (>= 6.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net6.0)) + System.Threading.Tasks.Dataflow (>= 6.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net6.0)) + Microsoft.Build.Framework (17.2) + Microsoft.Win32.Registry (>= 4.3) + System.Security.Permissions (>= 4.7) + Microsoft.Build.Tasks.Core (17.2) + Microsoft.Build.Framework (>= 17.2) + Microsoft.Build.Utilities.Core (>= 17.2) + Microsoft.NET.StringTools (>= 1.0) + Microsoft.Win32.Registry (>= 4.3) + System.CodeDom (>= 4.4) + System.Collections.Immutable (>= 5.0) + System.Reflection.Metadata (>= 1.6) + System.Resources.Extensions (>= 4.6) + System.Security.Cryptography.Pkcs (>= 4.7) + System.Security.Cryptography.Xml (>= 4.7) + System.Security.Permissions (>= 4.7) + System.Threading.Tasks.Dataflow (>= 6.0) + Microsoft.Build.Utilities.Core (17.2) + Microsoft.Build.Framework (>= 17.2) + Microsoft.NET.StringTools (>= 1.0) + Microsoft.Win32.Registry (>= 4.3) + System.Collections.Immutable (>= 5.0) + System.Configuration.ConfigurationManager (>= 4.7) + System.Security.Permissions (>= 4.7) - restriction: == netstandard2.0 + System.Text.Encoding.CodePages (>= 4.0.1) - restriction: == netstandard2.0 + Microsoft.NET.StringTools (1.0) + System.Memory (>= 4.5.4) + System.Runtime.CompilerServices.Unsafe (>= 5.0) + Microsoft.NETCore.Platforms (6.0.4) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard1.2)) (&& (== net6.0) (< netstandard1.3)) (&& (== net6.0) (< netstandard1.5)) (== netstandard2.0) + Microsoft.NETCore.Targets (5.0) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard1.2)) (&& (== net6.0) (< netstandard1.3)) (&& (== net6.0) (< netstandard1.5)) (== netstandard2.0) + Microsoft.Win32.Registry (5.0) + System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (>= monoandroid) (< netstandard1.3)) (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (>= xamarinios)) (&& (== net6.0) (>= xamarinmac)) (&& (== net6.0) (>= xamarintvos)) (&& (== net6.0) (>= xamarinwatchos)) (== netstandard2.0) + System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (>= uap10.1)) (== netstandard2.0) + System.Security.AccessControl (>= 5.0) + System.Security.Principal.Windows (>= 5.0) + Microsoft.Win32.SystemEvents (6.0.1) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) + Mono.Posix.NETStandard (1.0) + MSBuild.StructuredLogger (2.1.669) + Microsoft.Build (>= 16.10) + Microsoft.Build.Framework (>= 16.10) + Microsoft.Build.Tasks.Core (>= 16.10) + Microsoft.Build.Utilities.Core (>= 16.10) + Newtonsoft.Json (13.0.1) + NuGet.Common (6.2.1) + NuGet.Frameworks (>= 6.2.1) + NuGet.Configuration (6.2.1) + NuGet.Common (>= 6.2.1) + System.Security.Cryptography.ProtectedData (>= 4.4) + NuGet.Frameworks (6.2.1) + NuGet.Packaging (6.2.1) + Newtonsoft.Json (>= 13.0.1) + NuGet.Configuration (>= 6.2.1) + NuGet.Versioning (>= 6.2.1) + System.Security.Cryptography.Cng (>= 5.0) + System.Security.Cryptography.Pkcs (>= 5.0) + NuGet.Protocol (6.2.1) + NuGet.Packaging (>= 6.2.1) + NuGet.Versioning (6.2.1) + System.Buffers (4.5.1) - restriction: || (&& (== net6.0) (>= monoandroid) (< netstandard1.3)) (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (>= xamarinios)) (&& (== net6.0) (>= xamarinmac)) (&& (== net6.0) (>= xamarintvos)) (&& (== net6.0) (>= xamarinwatchos)) (== netstandard2.0) + System.CodeDom (6.0) + System.Collections.Immutable (6.0) + System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net461)) (== netstandard2.0) + System.Runtime.CompilerServices.Unsafe (>= 6.0) + System.Configuration.ConfigurationManager (6.0) + System.Security.Cryptography.ProtectedData (>= 6.0) + System.Security.Permissions (>= 6.0) + System.Drawing.Common (6.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) + Microsoft.Win32.SystemEvents (>= 6.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) + System.Formats.Asn1 (6.0) + System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (>= net461)) (== netstandard2.0) + System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net461)) (== netstandard2.0) + System.Memory (4.5.5) + System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netstandard1.1)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= xamarinios)) (&& (== net6.0) (>= xamarinmac)) (&& (== net6.0) (>= xamarintvos)) (&& (== net6.0) (>= xamarinwatchos)) (== netstandard2.0) + System.Numerics.Vectors (>= 4.4) - restriction: || (&& (== net6.0) (< netcoreapp2.0)) (== netstandard2.0) + System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (< netstandard1.1)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= uap10.1)) (&& (== net6.0) (>= xamarinios)) (&& (== net6.0) (>= xamarinmac)) (&& (== net6.0) (>= xamarintvos)) (&& (== net6.0) (>= xamarinwatchos)) (== netstandard2.0) + System.Numerics.Vectors (4.5) - restriction: || (&& (== net6.0) (>= net461)) (== netstandard2.0) + System.Reactive (5.0) + System.Runtime.InteropServices.WindowsRuntime (>= 4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (== netstandard2.0) + System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net472)) (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (>= uap10.1)) (== netstandard2.0) + System.Reflection.Metadata (6.0.1) + System.Collections.Immutable (>= 6.0) + System.Resources.Extensions (6.0) + System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net461)) (== netstandard2.0) + System.Runtime (4.3.1) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (== netstandard2.0) + Microsoft.NETCore.Platforms (>= 1.1.1) + Microsoft.NETCore.Targets (>= 1.1.3) + System.Runtime.CompilerServices.Unsafe (6.0) + System.Runtime.InteropServices.WindowsRuntime (4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (== netstandard2.0) + System.Runtime (>= 4.3) + System.Security.AccessControl (6.0) + System.Security.Principal.Windows (>= 5.0) - restriction: || (&& (== net6.0) (>= net461)) (== netstandard2.0) + System.Security.Cryptography.Cng (5.0) + System.Formats.Asn1 (>= 5.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.0)) + System.Security.Cryptography.Pkcs (6.0.1) + System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) + System.Formats.Asn1 (>= 6.0) + System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) + System.Security.Cryptography.Cng (>= 5.0) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) + System.Security.Cryptography.ProtectedData (6.0) + System.Security.Cryptography.Xml (6.0) + System.Memory (>= 4.5.4) - restriction: == netstandard2.0 + System.Security.AccessControl (>= 6.0) + System.Security.Cryptography.Pkcs (>= 6.0) + System.Security.Permissions (6.0) + System.Security.AccessControl (>= 6.0) + System.Windows.Extensions (>= 6.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) + System.Security.Principal.Windows (5.0) + System.Text.Encoding.CodePages (6.0) + System.Runtime.CompilerServices.Unsafe (>= 6.0) + System.Text.Encodings.Web (6.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net6.0)) + System.Runtime.CompilerServices.Unsafe (>= 6.0) + System.Text.Json (6.0.5) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net6.0)) + System.Runtime.CompilerServices.Unsafe (>= 6.0) + System.Text.Encodings.Web (>= 6.0) + System.Threading.Tasks.Dataflow (6.0) + System.Threading.Tasks.Extensions (4.5.4) - restriction: || (&& (== net6.0) (>= net472)) (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (>= uap10.1)) (== netstandard2.0) + System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (< netstandard1.0)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= wp8)) (== netstandard2.0) + System.Windows.Extensions (6.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) + System.Drawing.Common (>= 6.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) diff --git a/fake.cmd b/fake.cmd new file mode 100644 index 0000000..72bbc3e --- /dev/null +++ b/fake.cmd @@ -0,0 +1,2 @@ +dotnet tool restore +dotnet fake %* \ No newline at end of file diff --git a/fake.sh b/fake.sh new file mode 100755 index 0000000..bc92bc9 --- /dev/null +++ b/fake.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +set -eu +set -o pipefail + +dotnet tool restore +dotnet fake "$@" \ No newline at end of file diff --git a/src/JobsJobsJobs/App/package.json b/src/JobsJobsJobs/App/package.json index 160df92..e540a75 100644 --- a/src/JobsJobsJobs/App/package.json +++ b/src/JobsJobsJobs/App/package.json @@ -5,9 +5,7 @@ "scripts": { "serve": "vue-cli-service serve", "build": "vue-cli-service build", - "lint": "vue-cli-service lint", - "apiserve": "vue-cli-service build && cd ../Server && dotnet run -c Debug", - "publish": "vue-cli-service build --modern && cd ../Server && dotnet publish -c Release -r linux-x64 -p:PublishSingleFile=true --self-contained false" + "lint": "vue-cli-service lint" }, "dependencies": { "@mdi/js": "^5.9.55", diff --git a/src/JobsJobsJobs/Directory.Build.props b/src/JobsJobsJobs/Directory.Build.props index 1410d4b..2629784 100644 --- a/src/JobsJobsJobs/Directory.Build.props +++ b/src/JobsJobsJobs/Directory.Build.props @@ -1,8 +1,9 @@ - net5.0 + net6.0 enable - 1.0.1.0 - 1.0.1.0 + embedded + 2.2.2.0 + 2.2.2.0 diff --git a/src/JobsJobsJobs/Domain/JobsJobsJobs.Domain.fsproj b/src/JobsJobsJobs/Domain/JobsJobsJobs.Domain.fsproj index 9d14916..a005d97 100644 --- a/src/JobsJobsJobs/Domain/JobsJobsJobs.Domain.fsproj +++ b/src/JobsJobsJobs/Domain/JobsJobsJobs.Domain.fsproj @@ -1,7 +1,6 @@  - net6.0 true 3390;$(WarnOn) diff --git a/src/JobsJobsJobs/Server/JobsJobsJobs.Server.fsproj b/src/JobsJobsJobs/Server/JobsJobsJobs.Server.fsproj index 9f23c41..1c8650b 100644 --- a/src/JobsJobsJobs/Server/JobsJobsJobs.Server.fsproj +++ b/src/JobsJobsJobs/Server/JobsJobsJobs.Server.fsproj @@ -2,7 +2,8 @@ Exe - net6.0 + true + false 3390;$(WarnOn)