FsMake 0.6.1
.NET Core 3.1
Install-Package FsMake -Version 0.6.1
dotnet add package FsMake --version 0.6.1
<PackageReference Include="FsMake" Version="0.6.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add FsMake --version 0.6.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: FsMake, 0.6.1"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install FsMake as a Cake Addin
#addin nuget:?package=FsMake&version=0.6.1
// Install FsMake as a Cake Tool
#tool nuget:?package=FsMake&version=0.6.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
<h4> █▀▀ █▀ █▀▄▀█ ▄▀█ █▄▀ █▀▀<br /> █▀░ ▄█ █░▀░█ █▀█ █░█ ██▄ </h4>
Simple build pipelines with F#
Development 🚧
⚠ While this library is pre 1.0.0, there is the possibility of breaking changes in the public API.
Documentation
Documentation with examples and API reference can be found here.
Demo
Usage
// build.fsx
#r "nuget: FsMake"
// or a specific version
// #r "nuget: FsMake, 0.1.0"
open FsMake
open System.IO
let args = fsi.CommandLineArgs
let useAnsi = EnvVar.getOptionAs<int> "ANSI" |> Option.contains 1
let buildConfig = EnvVar.getOption "BUILD_CONFIG" |> Option.defaultValue "Debug"
let clean =
Step.create "clean" {
Glob.create "nupkgs/*.nupkg" |> Glob.toPaths |> Seq.iter (File.Delete)
do! Cmd.createWithArgs "dotnet" [ "clean"; "-v"; "m" ] |> Cmd.run
}
let restore = Step.create "restore" { do! Cmd.createWithArgs "dotnet" [ "restore" ] |> Cmd.run }
let build =
Step.create "build" {
do!
Cmd.createWithArgs "dotnet" [ "build"; "--no-restore" ]
|> Cmd.args [ "-c"; buildConfig ]
|> Cmd.argMaybe useAnsi "/consoleloggerparameters:ForceConsoleColor"
|> Cmd.run
}
let testUnit =
Step.create "test:unit" {
do!
Cmd.createWithArgs "dotnet" [ "test" ]
|> Cmd.args [ "--no-build"; "--no-restore"; "MyProject.UnitTests" ]
|> Cmd.run
}
let testInt =
Step.create "test:integration" {
do!
retry 2 {
do!
Cmd.createWithArgs "dotnet" [ "test" ]
|> Cmd.args [ "--no-build"; "--no-restore"; "MyProject.IntegrationTests" ]
|> Cmd.run
}
}
Pipelines.create {
let! build =
Pipeline.create "build" {
run clean
run restore
run build
}
do! Pipeline.createFrom build "test" { run_parallel [ testUnit; testInt ] }
default_pipeline build
}
|> Pipelines.runWithArgsAndExit args
To run:
dotnet fsi build.fsx --
Product | Versions |
---|---|
.NET | net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows |
.NET Core | netcoreapp3.1 |
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.
-
.NETCoreApp 3.1
- FSharp.Core (>= 5.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.6.1 | 136 | 5/26/2022 |
0.6.0 | 87 | 5/24/2022 |
0.6.0-beta.1 | 51 | 5/21/2022 |
0.5.0 | 232 | 4/9/2022 |
0.5.0-beta.3 | 60 | 4/9/2022 |
0.5.0-beta.2 | 53 | 4/4/2022 |
0.5.0-beta.1 | 63 | 3/25/2022 |
0.4.0 | 331 | 12/17/2021 |
0.4.0-beta.2 | 159 | 12/17/2021 |
0.4.0-beta.1 | 125 | 12/13/2021 |
0.3.0 | 280 | 6/29/2021 |
0.3.0-beta.1 | 259 | 6/28/2021 |
0.2.1 | 382 | 6/25/2021 |
0.2.0 | 335 | 6/22/2021 |
0.2.0-beta.3 | 250 | 6/22/2021 |
0.2.0-beta.2 | 128 | 6/22/2021 |
0.2.0-beta.1 | 100 | 6/21/2021 |
0.2.0-alpha.1 | 83 | 6/20/2021 |
0.1.0 | 331 | 6/14/2021 |
0.1.0-beta.1 | 211 | 6/14/2021 |
0.1.0-alpha.45 | 216 | 6/14/2021 |