This repository has been archived by the owner on Oct 21, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
9d7e4a1
commit 9132222
Showing
15 changed files
with
587 additions
and
161 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -350,3 +350,4 @@ MigrationBackup/ | |
.ionide/ | ||
src/_public | ||
.vscode/settings.json | ||
.vscode/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
|
||
Microsoft Visual Studio Solution File, Format Version 12.00 | ||
# Visual Studio Version 17 | ||
VisualStudioVersion = 17.2.32505.173 | ||
MinimumVisualStudioVersion = 10.0.40219.1 | ||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{2B672946-D10B-4804-93DE-B11DE6B85259}" | ||
EndProject | ||
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Fornax.Nfdi4Plants", "src\Fornax.Nfdi4Plants\Fornax.Nfdi4Plants.fsproj", "{CFC6EB06-696A-4542-94CF-4D607A2E1225}" | ||
EndProject | ||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{569B21DD-E434-48EF-9D28-FC864B6A7EC3}" | ||
EndProject | ||
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Fornax.Nfdi4Plants.Tests", "tests\Fornax.Nfdi4Plants.Tests\Fornax.Nfdi4Plants.Tests.fsproj", "{1FA65D34-DF8B-4B24-8A11-084219DDC133}" | ||
EndProject | ||
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "build", "build\build.fsproj", "{C125CB69-05E3-4D86-B099-55B213B624DB}" | ||
EndProject | ||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{698B3036-4F3E-451C-AEFA-6BE8117B322E}" | ||
ProjectSection(SolutionItems) = preProject | ||
README.md = README.md | ||
RELEASE_NOTES.md = RELEASE_NOTES.md | ||
rollup.config.js = rollup.config.js | ||
EndProjectSection | ||
EndProject | ||
Global | ||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||
Debug|Any CPU = Debug|Any CPU | ||
Release|Any CPU = Release|Any CPU | ||
EndGlobalSection | ||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||
{CFC6EB06-696A-4542-94CF-4D607A2E1225}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{CFC6EB06-696A-4542-94CF-4D607A2E1225}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{CFC6EB06-696A-4542-94CF-4D607A2E1225}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{CFC6EB06-696A-4542-94CF-4D607A2E1225}.Release|Any CPU.Build.0 = Release|Any CPU | ||
{1FA65D34-DF8B-4B24-8A11-084219DDC133}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{1FA65D34-DF8B-4B24-8A11-084219DDC133}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{1FA65D34-DF8B-4B24-8A11-084219DDC133}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{1FA65D34-DF8B-4B24-8A11-084219DDC133}.Release|Any CPU.Build.0 = Release|Any CPU | ||
{C125CB69-05E3-4D86-B099-55B213B624DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{C125CB69-05E3-4D86-B099-55B213B624DB}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{C125CB69-05E3-4D86-B099-55B213B624DB}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{C125CB69-05E3-4D86-B099-55B213B624DB}.Release|Any CPU.Build.0 = Release|Any CPU | ||
EndGlobalSection | ||
GlobalSection(SolutionProperties) = preSolution | ||
HideSolutionNode = FALSE | ||
EndGlobalSection | ||
GlobalSection(NestedProjects) = preSolution | ||
{CFC6EB06-696A-4542-94CF-4D607A2E1225} = {2B672946-D10B-4804-93DE-B11DE6B85259} | ||
{1FA65D34-DF8B-4B24-8A11-084219DDC133} = {569B21DD-E434-48EF-9D28-FC864B6A7EC3} | ||
EndGlobalSection | ||
GlobalSection(ExtensibilityGlobals) = postSolution | ||
SolutionGuid = {9591E7EB-8243-4661-BA6B-3DD822EB60EB} | ||
EndGlobalSection | ||
EndGlobal |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
### 0.0.0 (Released 2022-6-13) | ||
* Additions: | ||
* Initial set up for RELEASE_Notes.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
@echo off | ||
cls | ||
|
||
dotnet run --project ./build/build.fsproj %* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
module BasicTasks | ||
|
||
open BlackFox.Fake | ||
open Fake.IO | ||
open Fake.DotNet | ||
open Fake.IO.Globbing.Operators | ||
|
||
open ProjectInfo | ||
|
||
let setPrereleaseTag = BuildTask.create "SetPrereleaseTag" [] { | ||
printfn "Please enter pre-release package suffix" | ||
let suffix = System.Console.ReadLine() | ||
prereleaseSuffix <- suffix | ||
prereleaseTag <- (sprintf "%s-%s" release.NugetVersion suffix) | ||
isPrerelease <- true | ||
} | ||
|
||
let clean = BuildTask.create "Clean" [] { | ||
!! "src/**/bin" | ||
++ "src/**/obj" | ||
++ "tests/**/bin" | ||
++ "tests/**/obj" | ||
++ "pkg" | ||
|> Shell.cleanDirs | ||
} | ||
|
||
let build = BuildTask.create "Build" [clean] { | ||
solutionFile | ||
|> DotNet.build id | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
open BlackFox.Fake | ||
open System.IO | ||
open Fake.Core | ||
open Fake.DotNet | ||
open Fake.IO | ||
open Fake.IO.FileSystemOperators | ||
open Fake.IO.Globbing.Operators | ||
open Fake.Tools | ||
|
||
open Helpers | ||
|
||
initializeContext() | ||
|
||
open BasicTasks | ||
open TestTasks | ||
open PackageTasks | ||
open ReleaseTasks | ||
|
||
/// Full release of nuget package for the prerelease version. | ||
let _release = | ||
BuildTask.createEmpty | ||
"ReleaseNoDocs" | ||
[clean; build; runTests; pack; createTag; publishNuget;] | ||
|
||
/// Full release of nuget package for the prerelease version. | ||
let _preRelease = | ||
BuildTask.createEmpty | ||
"PreReleaseNoDocs" | ||
[setPrereleaseTag; clean; build; runTests; packPrerelease; createPrereleaseTag; publishNugetPrerelease] | ||
|
||
[<EntryPoint>] | ||
let main args = | ||
runOrDefault build args |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
module Helpers | ||
|
||
open BlackFox.Fake | ||
open Fake.Core | ||
open Fake.DotNet | ||
|
||
let initializeContext () = | ||
let execContext = Context.FakeExecutionContext.Create false "build.fsx" [ ] | ||
Context.setExecutionContext (Context.RuntimeContext.Fake execContext) | ||
|
||
/// Executes a dotnet command in the given working directory | ||
let runDotNet cmd workingDir = | ||
let result = | ||
DotNet.exec (DotNet.Options.withWorkingDirectory workingDir) cmd "" | ||
if result.ExitCode <> 0 then failwithf "'dotnet %s' failed in %s" cmd workingDir | ||
|
||
let runOrDefault defaultTarget args = | ||
Trace.trace (sprintf "%A" args) | ||
try | ||
match args with | ||
| [| target |] -> Target.runOrDefault target | ||
| arr when args.Length > 1 -> | ||
Target.run 0 (Array.head arr) ( Array.tail arr |> List.ofArray ) | ||
| _ -> BuildTask.runOrDefault defaultTarget | ||
0 | ||
with e -> | ||
printfn "%A" e | ||
1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
module MessagePrompts | ||
|
||
let prompt (msg:string) = | ||
System.Console.Write(msg) | ||
System.Console.ReadLine().Trim() | ||
|> function | "" -> None | s -> Some s | ||
|> Option.map (fun s -> s.Replace ("\"","\\\"")) | ||
|
||
let rec promptYesNo msg = | ||
match prompt (sprintf "%s [Yn]: " msg) with | ||
| Some "Y" | Some "y" -> true | ||
| Some "N" | Some "n" -> false | ||
| _ -> System.Console.WriteLine("Sorry, invalid answer"); promptYesNo msg | ||
|
||
let releaseMsg = """This will stage all uncommitted changes, push them to the origin and bump the release version to the latest number in the RELEASE_NOTES.md file. | ||
Do you want to continue?""" | ||
|
||
let releaseDocsMsg = """This will push the docs to gh-pages. Remember building the docs prior to this. Do you want to continue?""" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
module PackageTasks | ||
|
||
open ProjectInfo | ||
|
||
open MessagePrompts | ||
open BasicTasks | ||
open TestTasks | ||
|
||
open BlackFox.Fake | ||
open Fake.Core | ||
open Fake.IO.Globbing.Operators | ||
|
||
let pack = BuildTask.create "Pack" [clean; build; runTests] { | ||
if promptYesNo (sprintf "creating stable package with version %s OK?" stableVersionTag ) | ||
then | ||
!! "src/**/*.*proj" | ||
-- "src/bin/*" | ||
|> Seq.iter (Fake.DotNet.DotNet.pack (fun p -> | ||
let msBuildParams = | ||
{p.MSBuildParams with | ||
Properties = ([ | ||
"Version",stableVersionTag | ||
"PackageReleaseNotes", (release.Notes |> String.concat "\r\n") | ||
] @ p.MSBuildParams.Properties) | ||
} | ||
{ | ||
p with | ||
MSBuildParams = msBuildParams | ||
OutputPath = Some pkgDir | ||
} | ||
)) | ||
else failwith "aborted" | ||
} | ||
|
||
let packPrerelease = BuildTask.create "PackPrerelease" [setPrereleaseTag; clean; build; runTests] { | ||
if promptYesNo (sprintf "package tag will be %s OK?" prereleaseTag ) | ||
then | ||
!! "src/**/*.*proj" | ||
-- "src/bin/*" | ||
|> Seq.iter (Fake.DotNet.DotNet.pack (fun p -> | ||
let msBuildParams = | ||
{p.MSBuildParams with | ||
Properties = ([ | ||
"Version", prereleaseTag | ||
"PackageReleaseNotes", (release.Notes |> String.toLines ) | ||
] @ p.MSBuildParams.Properties) | ||
} | ||
{ | ||
p with | ||
VersionSuffix = Some prereleaseSuffix | ||
OutputPath = Some pkgDir | ||
MSBuildParams = msBuildParams | ||
} | ||
)) | ||
else | ||
failwith "aborted" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
module ProjectInfo | ||
|
||
open Fake.Core | ||
open Fake.Extensions.Release | ||
|
||
Release.exists() | ||
|
||
let project = "Nfdi4Plants.Fornax" | ||
|
||
let testProjects = | ||
[ | ||
// add relative paths (from project root) to your testprojects here | ||
@"tests\Fornax.Nfdi4Plants.Tests\Fornax.Nfdi4Plants.Tests.fsproj" | ||
] | ||
|
||
let solutionFile = $"{project}.sln" | ||
|
||
let configuration = "Release" | ||
|
||
let gitOwner = "Freymaurer" | ||
|
||
let gitHome = $"https://github.com/{gitOwner}" | ||
|
||
let projectRepo = $"https://github.com/{gitOwner}/{project}" | ||
|
||
let pkgDir = "pkg" | ||
|
||
let release = ReleaseNotes.load "RELEASE_NOTES.md" | ||
|
||
let stableVersion = SemVer.parse release.NugetVersion | ||
|
||
let stableVersionTag = (sprintf "%i.%i.%i" stableVersion.Major stableVersion.Minor stableVersion.Patch ) | ||
|
||
let mutable prereleaseSuffix = "" | ||
|
||
let mutable prereleaseTag = "" | ||
|
||
let mutable isPrerelease = false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
module ReleaseNotesTasks | ||
|
||
open Fake.Extensions.Release | ||
open BlackFox.Fake | ||
|
||
let createAssemblyVersion = BuildTask.create "createvfs" [] { | ||
AssemblyVersion.create ProjectInfo.project | ||
} | ||
|
||
let updateReleaseNotes = BuildTask.createFn "ReleaseNotes" [] (fun config -> | ||
Release.exists() | ||
|
||
Release.update(ProjectInfo.gitOwner, ProjectInfo.project, config) | ||
) | ||
|
||
let githubDraft = BuildTask.createFn "GithubDraft" [] (fun config -> | ||
|
||
let body = "We are ready to go for the first release!" | ||
|
||
Github.draft( | ||
ProjectInfo.gitOwner, | ||
ProjectInfo.project, | ||
(Some body), | ||
None, | ||
config | ||
) | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
module ReleaseTasks | ||
|
||
open MessagePrompts | ||
open ProjectInfo | ||
open BasicTasks | ||
open TestTasks | ||
open PackageTasks | ||
|
||
open BlackFox.Fake | ||
open Fake.Core | ||
open Fake.DotNet | ||
open Fake.Api | ||
open Fake.Tools | ||
open Fake.IO | ||
open Fake.IO.Globbing.Operators | ||
|
||
let createTag = BuildTask.create "CreateTag" [clean; build; runTests; pack] { | ||
if promptYesNo (sprintf "tagging branch with %s OK?" stableVersionTag ) then | ||
Git.Branches.tag "" stableVersionTag | ||
Git.Branches.pushTag "" projectRepo stableVersionTag | ||
else | ||
failwith "aborted" | ||
} | ||
|
||
let createPrereleaseTag = BuildTask.create "CreatePrereleaseTag" [setPrereleaseTag; clean; build; runTests; packPrerelease] { | ||
if promptYesNo (sprintf "tagging branch with %s OK?" prereleaseTag ) then | ||
Git.Branches.tag "" prereleaseTag | ||
Git.Branches.pushTag "" projectRepo prereleaseTag | ||
else | ||
failwith "aborted" | ||
} | ||
|
||
|
||
let publishNuget = BuildTask.create "PublishNuget" [clean; build; runTests; pack] { | ||
let targets = (!! (sprintf "%s/*.*pkg" pkgDir )) | ||
for target in targets do printfn "%A" target | ||
let msg = sprintf "release package with version %s?" stableVersionTag | ||
if promptYesNo msg then | ||
let source = "https://api.nuget.org/v3/index.json" | ||
let apikey = Environment.environVar "NUGET_KEY_CSB" | ||
for artifact in targets do | ||
let result = DotNet.exec id "nuget" (sprintf "push -s %s -k %s %s --skip-duplicate" source apikey artifact) | ||
if not result.OK then failwith "failed to push packages" | ||
else failwith "aborted" | ||
} | ||
|
||
let publishNugetPrerelease = BuildTask.create "PublishNugetPrerelease" [clean; build; runTests; packPrerelease] { | ||
let targets = (!! (sprintf "%s/*.*pkg" pkgDir )) | ||
for target in targets do printfn "%A" target | ||
let msg = sprintf "release package with version %s?" prereleaseTag | ||
if promptYesNo msg then | ||
let source = "https://api.nuget.org/v3/index.json" | ||
let apikey = Environment.environVar "NUGET_KEY_CSB" | ||
for artifact in targets do | ||
let result = DotNet.exec id "nuget" (sprintf "push -s %s -k %s %s --skip-duplicate" source apikey artifact) | ||
if not result.OK then failwith "failed to push packages" | ||
else failwith "aborted" | ||
} |
Oops, something went wrong.