Sha256: e0736a545403baff491739665a14b8acd25c90c65b8c6311aff7ba85eec64d5c

Contents?: true

Size: 1.83 KB

Versions: 59

Compression:

Stored size: 1.83 KB

Contents

// Include Fake library
#r "./packages/FAKE/tools/FakeLib.dll"

open Fake
open Fake.Testing.NUnit3

// Directories
let buildDir  = "./build/"
let sourceDir  = "./exercises/"

// Files
let solutionFile = buildDir @@ "/exercises.csproj"
let compiledOutput = buildDir @@ "xcsharp.dll"
let nunitToJunitTransformFile = "./paket-files" @@ "nunit" @@ "nunit-transforms" @@ "nunit3-junit" @@ "nunit3-junit.xslt"

// Targets
Target "PrepareUnchanged" (fun _ -> 
    CleanDirs [buildDir]
    CopyDir buildDir sourceDir allFiles
)

Target "BuildUnchanged" (fun _ ->
    MSBuildRelease buildDir "Build" [solutionFile]
    |> Log "Build unchanged output: "
)

Target "PrepareTests" (fun _ ->
    CleanDirs [buildDir]
    CopyDir buildDir sourceDir allFiles

    let ignorePattern = "(\[Ignore\(\"Remove to run test\"\)]|, Ignore = \"Remove to run test case\")"

    !! (buildDir @@ "**/*Test.cs")
    |> RegexReplaceInFilesWithEncoding ignorePattern "" System.Text.Encoding.UTF8
)

Target "BuildTests" (fun _ ->
    MSBuildRelease buildDir "Build" [solutionFile]
    |> Log "Build tests output: "
)

Target "Test" (fun _ ->
    if getEnvironmentVarAsBool "APPVEYOR" then
        [compiledOutput]
        |> NUnit3 (fun p -> { p with 
                                ShadowCopy = false
                                ToolPath = "nunit3-console.exe" })
    else if getEnvironmentVarAsBool "CIRCLECI" then
        [compiledOutput]
        |> NUnit3 (fun p -> { p with 
                                ShadowCopy = false
                                ResultSpecs = [sprintf "junit-results.xml;transform=%s" nunitToJunitTransformFile] })
    else
        [compiledOutput]
        |> NUnit3 (fun p -> { p with ShadowCopy = false })
)

// Build order
"PrepareUnchanged"
  ==> "BuildUnchanged"
  ==> "PrepareTests"
  ==> "BuildTests"    
  ==> "Test"

// start build
RunTargetOrDefault "Test"

Version data entries

59 entries across 59 versions & 1 rubygems

Version Path
trackler-2.0.8.14 tracks/csharp/build.fsx
trackler-2.0.8.13 tracks/csharp/build.fsx
trackler-2.0.8.12 tracks/csharp/build.fsx
trackler-2.0.8.11 tracks/csharp/build.fsx
trackler-2.0.8.10 tracks/csharp/build.fsx
trackler-2.0.8.9 tracks/csharp/build.fsx
trackler-2.0.8.8 tracks/csharp/build.fsx
trackler-2.0.8.7 tracks/csharp/build.fsx
trackler-2.0.8.6 tracks/csharp/build.fsx
trackler-2.0.8.5 tracks/csharp/build.fsx
trackler-2.0.8.4 tracks/csharp/build.fsx
trackler-2.0.8.3 tracks/csharp/build.fsx
trackler-2.0.8.2 tracks/csharp/build.fsx
trackler-2.0.8.1 tracks/csharp/build.fsx
trackler-2.0.7.0 tracks/csharp/build.fsx
trackler-2.0.6.44 tracks/csharp/build.fsx
trackler-2.0.6.43 tracks/csharp/build.fsx
trackler-2.0.6.42 tracks/csharp/build.fsx
trackler-2.0.6.41 tracks/csharp/build.fsx
trackler-2.0.6.40 tracks/csharp/build.fsx