Skip to content

Commit

Permalink
Build Scripts.
Browse files Browse the repository at this point in the history
  • Loading branch information
sdedalus committed Jun 27, 2017
1 parent d5f4074 commit 029b9e8
Show file tree
Hide file tree
Showing 39 changed files with 437 additions and 157 deletions.
5 changes: 4 additions & 1 deletion .gitignore
Expand Up @@ -242,4 +242,7 @@ ModelManifest.xml
.paket/paket.exe

# FAKE - F# Make
.fake/
.fake/
.build/
.test/
tools/
18 changes: 17 additions & 1 deletion DiscriminatedUnion.sln
Expand Up @@ -8,12 +8,25 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiscriminatedUnionTests", "src\DiscriminatedUnionTests\DiscriminatedUnionTests.csproj", "{0B741851-0979-4333-BA94-49F3F6086C9A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiscriminatedUnionAutoMap", "src\DiscriminatedUnionAutoMap\DiscriminatedUnionAutoMap.csproj", "{02FF4951-7724-450A-A34E-CE81E180326D}"
ProjectSection(ProjectDependencies) = postProject
{1777ABBD-3579-4B99-B2E2-24ED3E834F84} = {1777ABBD-3579-4B99-B2E2-24ED3E834F84}
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiscriminatedUnionAutoMapTests", "src\DiscriminatedUnionAutoMapTests\DiscriminatedUnionAutoMapTests.csproj", "{C0BA2DCC-A6BE-437C-ACAF-3E35587A6DB3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiscriminatedUnionJsonConverter", "src\DiscriminatedUnionJsonConverter\DiscriminatedUnionJsonConverter.csproj", "{5693CF0B-86D6-4E1D-985B-24C2E8ED6A17}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiscriminatedUnionJsonConverterTest", "src\DiscriminatedUnionJsonConverterTest\DiscriminatedUnionJsonConverterTest.csproj", "{156FD9E6-ECB1-42D5-8A98-B6F1ABFDAC69}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiscriminatedUnionJsonConverterTests", "src\DiscriminatedUnionJsonConverterTests\DiscriminatedUnionJsonConverterTests.csproj", "{156FD9E6-ECB1-42D5-8A98-B6F1ABFDAC69}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".common", ".common", "{44543414-0D9F-4A3A-8847-363C21BDD1C5}"
ProjectSection(SolutionItems) = preProject
.gitattributes = .gitattributes
.gitignore = .gitignore
appveyor.yml = appveyor.yml
build.cmd = build.cmd
build.fsx = build.fsx
README.md = README.md
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand Down Expand Up @@ -52,6 +65,7 @@ Global
{0B741851-0979-4333-BA94-49F3F6086C9A}.Debug|x86.ActiveCfg = Debug|Any CPU
{0B741851-0979-4333-BA94-49F3F6086C9A}.Debug|x86.Build.0 = Debug|Any CPU
{0B741851-0979-4333-BA94-49F3F6086C9A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0B741851-0979-4333-BA94-49F3F6086C9A}.Release|Any CPU.Build.0 = Release|Any CPU
{0B741851-0979-4333-BA94-49F3F6086C9A}.Release|ARM.ActiveCfg = Release|Any CPU
{0B741851-0979-4333-BA94-49F3F6086C9A}.Release|ARM.Build.0 = Release|Any CPU
{0B741851-0979-4333-BA94-49F3F6086C9A}.Release|x64.ActiveCfg = Release|Any CPU
Expand Down Expand Up @@ -83,6 +97,7 @@ Global
{C0BA2DCC-A6BE-437C-ACAF-3E35587A6DB3}.Debug|x86.ActiveCfg = Debug|Any CPU
{C0BA2DCC-A6BE-437C-ACAF-3E35587A6DB3}.Debug|x86.Build.0 = Debug|Any CPU
{C0BA2DCC-A6BE-437C-ACAF-3E35587A6DB3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C0BA2DCC-A6BE-437C-ACAF-3E35587A6DB3}.Release|Any CPU.Build.0 = Release|Any CPU
{C0BA2DCC-A6BE-437C-ACAF-3E35587A6DB3}.Release|ARM.ActiveCfg = Release|Any CPU
{C0BA2DCC-A6BE-437C-ACAF-3E35587A6DB3}.Release|ARM.Build.0 = Release|Any CPU
{C0BA2DCC-A6BE-437C-ACAF-3E35587A6DB3}.Release|x64.ActiveCfg = Release|Any CPU
Expand Down Expand Up @@ -114,6 +129,7 @@ Global
{156FD9E6-ECB1-42D5-8A98-B6F1ABFDAC69}.Debug|x86.ActiveCfg = Debug|Any CPU
{156FD9E6-ECB1-42D5-8A98-B6F1ABFDAC69}.Debug|x86.Build.0 = Debug|Any CPU
{156FD9E6-ECB1-42D5-8A98-B6F1ABFDAC69}.Release|Any CPU.ActiveCfg = Release|Any CPU
{156FD9E6-ECB1-42D5-8A98-B6F1ABFDAC69}.Release|Any CPU.Build.0 = Release|Any CPU
{156FD9E6-ECB1-42D5-8A98-B6F1ABFDAC69}.Release|ARM.ActiveCfg = Release|Any CPU
{156FD9E6-ECB1-42D5-8A98-B6F1ABFDAC69}.Release|ARM.Build.0 = Release|Any CPU
{156FD9E6-ECB1-42D5-8A98-B6F1ABFDAC69}.Release|x64.ActiveCfg = Release|Any CPU
Expand Down
2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -18,5 +18,5 @@ string value = x.Match<string>()
.Case((int v) => "Tea?")
.Else(() => "Nothing");

Assert.AreEqual("Keeping It 100.", value);
Assert.Equal("Keeping It 100.", value);
```
17 changes: 7 additions & 10 deletions appveyor.yml
@@ -1,10 +1,7 @@
version: 1.0.{build}
image: Visual Studio 2017
before_build:
nuget restore
build:
project: src\DiscriminatedUnion.csproj
publish_nuget: true
publish_nuget_symbols: true
include_nuget_references: true
verbosity: minimal
environment:
version: 1.0.{build}
assembly_info:
patch: false
build_script:
build.cmd
test: off
6 changes: 6 additions & 0 deletions build.cmd
@@ -0,0 +1,6 @@
@echo off
cls
NuGet.exe "Install" "FAKE" "-OutputDirectory" "packages" "-ExcludeVersion"
NuGet.exe "Install" "xunit.runner.console" "-OutputDirectory" "tools" "-ExcludeVersion"

"packages\FAKE\tools\Fake.exe" build.fsx %*
160 changes: 160 additions & 0 deletions build.fsx
@@ -0,0 +1,160 @@
// include Fake lib
#r @"packages/FAKE/tools/FakeLib.dll"
open Fake
open Fake.Testing
open Fake.Testing.XUnit2
open Fake.AppVeyor
open Fake.NuGetHelper
open System.IO

[<AutoOpen>]
module Settings =
let buildDir = "./.build/"
let packagingDir = buildDir + "BuildOutput/"
let deployDir = "./.deploy/"
let testDir = "./.test/"
let projects = !! "src/**/*.csproj" -- "src/**/*.Tests.csproj"
let testProjects = !! "src/**/*Tests.csproj"
let packages = !! "./**/packages.config"

let getOutputDir proj =
let folderName = Directory.GetParent(proj).Name
sprintf "%s%s/" buildDir folderName

let build proj =
let outputDir = proj |> getOutputDir
MSBuildRelease outputDir "ResolveReferences;Build" [proj] |> ignore

let getVersion() =
let buildCandidate = (environVar "APPVEYOR_BUILD_NUMBER")
if buildCandidate = "" || buildCandidate = null then "1.0.0" else (sprintf "1.0.0.%s" buildCandidate)

[<AutoOpen>]
module Targets =
Target "Clean" (fun() ->
CleanDirs [buildDir; deployDir; testDir]
)

Target "RestorePackages" (fun _ ->
packages
|> Seq.iter (RestorePackage (fun p -> {p with OutputPath = "./packages"}))
)

Target "Build" (fun() ->
projects
|> Seq.iter build
)

Target "BuildTest" (fun() ->
testProjects
|> MSBuildDebug testDir "Build"
|> ignore
)

Target "CopyMain" (fun _ ->
let targetDir = packagingDir @@ "main"
let sourceFile = buildDir + "DiscriminatedUnion/DiscriminatedUnion.dll"
CreateDir targetDir
CopyFile targetDir sourceFile
)

Target "CopyJson" (fun _ ->
let targetDir = packagingDir @@ "json"
let sourceFile = buildDir + "DiscriminatedUnionJsonConverter/DiscriminatedUnionJsonConverter.dll"
CreateDir targetDir
CopyFile targetDir sourceFile
)

Target "CopyAuto" (fun _ ->
let targetDir = packagingDir @@ "automap"
let sourceFile = buildDir + "DiscriminatedUnionAutoMap/DiscriminatedUnionAutoMap.dll"
CreateDir targetDir
CopyFile targetDir sourceFile
)

Target "Test" (fun() ->
!!(testDir @@ "*Tests.dll")
|> xUnit2 (fun p ->
{p with
ShadowCopy = false;
HtmlOutputPath = Some (testDir @@ "xunit.html");
XmlOutputPath = Some (testDir @@ "xunit.xml");
})
)

Target "PackageMain" (fun _ ->
trace "Packing"
let version = getVersion()
NuGet (fun p ->
{p with
Project = "DiscriminatedUnion"
Authors = ["David Lewis"]
Description = "Discriminated Union"
OutputPath = deployDir
Summary = "Discriminated Union with Fluent Matching written for C#"
WorkingDir = packagingDir @@ "main"
Files = [(buildDir + "DiscriminatedUnion/DiscriminatedUnion.dll", None, None)]
Version = version
Publish = false
})
("src/DiscriminatedUnion/DiscriminatedUnion.nuspec")
)

Target "PackageJson" (fun _ ->
trace "Packing"
let version = getVersion()
NuGet (fun p ->
{p with
Project = "DiscriminatedUnionJsonConverter"
Authors = ["David Lewis"]
Description = "Discriminated Union Json Helper"
OutputPath = deployDir
Dependencies =
[
("DiscriminatedUnion", version)
("Newtonsoft.Json", "10.0.3")]
Summary = "Discriminated Union with Fluent Matching written for C#"
WorkingDir = packagingDir @@ "json"
Files = [(buildDir @@ "DiscriminatedUnionJsonConverter/DiscriminatedUnionJsonConverter.dll", None, None)]
Version = version
Publish = false })
("src/DiscriminatedUnionJsonConverter/DiscriminatedUnionJsonConverter.nuspec")
)

Target "PackageAutoMap" (fun _ ->
trace "Packing"
let version = getVersion()
NuGet (fun p ->
{p with
Project = "DiscriminatedUnionAutoMap"
Authors = ["David Lewis"]
Description = "Discriminated Union AutoMap Helper"
OutputPath = deployDir
Dependencies =
[
("DiscriminatedUnion", version)
("AutoMapper", "6.1.0")]
Summary = "Discriminated Union with Fluent Matching written for C#"
WorkingDir = packagingDir @@ "automap"
Files = [(buildDir @@ "DiscriminatedUnionAutoMap/DiscriminatedUnionAutoMap.dll", None, None)]
Version = version
Publish = false })
("src/DiscriminatedUnionAutoMap/DiscriminatedUnionAutoMap.nuspec")
)

Target "Default" (fun _ -> ())

"Clean"
==> "RestorePackages"
==> "Build"
==> "BuildTest"
==> "Test"
==> "CopyMain"
==> "CopyJson"
==> "CopyAuto"
==> "PackageMain"
==> "PackageJson"
==> "PackageAutoMap"
==> "Default"

RunTargetOrDefault "Default"
Binary file added nuget.exe
Binary file not shown.
6 changes: 5 additions & 1 deletion src/DiscriminatedUnion/DiscriminatedUnion.csproj
Expand Up @@ -82,7 +82,11 @@
<Compile Include="Union\Union`8.cs" />
<Compile Include="Match\Unit.cs" />
</ItemGroup>
<ItemGroup />
<ItemGroup>
<None Include="DiscriminatedUnion.nuspec">
<SubType>Designer</SubType>
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
Expand Down
21 changes: 21 additions & 0 deletions src/DiscriminatedUnion/DiscriminatedUnion.nuspec
@@ -0,0 +1,21 @@
<?xml version="1.0"?>
<package >
<metadata>
<id>DiscriminatedUnion</id>
<version>1.0.0</version>
<authors>David Lewis</authors>
<owners>David Lewis</owners>
<licenseUrl>https://github.com/sdedalus/DiscriminatedUnion</licenseUrl>
<projectUrl>https://github.com/sdedalus/DiscriminatedUnion</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Discriminated Union implementation for C#</description>
<releaseNotes>First</releaseNotes>
<copyright>Copyright 2017</copyright>
<tags>Discriminated Union</tags>
<dependencies>
</dependencies>
</metadata>
<files>
<file src="DiscriminatedUnion.dll" target="lib\net45" />
</files>
</package>
2 changes: 1 addition & 1 deletion src/DiscriminatedUnion/Properties/AssemblyInfo.cs
Expand Up @@ -31,5 +31,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyFileVersion("1.0.0.0")]
Expand Up @@ -31,8 +31,8 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="AutoMapper, Version=6.0.2.0, Culture=neutral, PublicKeyToken=be96cd2c38ef1005, processorArchitecture=MSIL">
<HintPath>..\packages\AutoMapper.6.0.2\lib\net45\AutoMapper.dll</HintPath>
<Reference Include="AutoMapper, Version=6.1.0.0, Culture=neutral, PublicKeyToken=be96cd2c38ef1005, processorArchitecture=MSIL">
<HintPath>..\..\packages\AutoMapper.6.1.0\lib\net45\AutoMapper.dll</HintPath>
</Reference>
<Reference Include="DiscriminatedUnion">
<HintPath>..\DiscriminatedUnion\bin\Debug\DiscriminatedUnion.dll</HintPath>
Expand Down Expand Up @@ -60,6 +60,9 @@
<Compile Include="ToUnionUnionConverter.cs" />
</ItemGroup>
<ItemGroup>
<None Include="DiscriminatedUnionAutoMap.nuspec">
<SubType>Designer</SubType>
</None>
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Expand Down
21 changes: 21 additions & 0 deletions src/DiscriminatedUnionAutoMap/DiscriminatedUnionAutoMap.nuspec
@@ -0,0 +1,21 @@
<?xml version="1.0"?>
<package >
<metadata>
<id>DiscriminatedUnionAutoMap</id>
<version>$version$</version>
<title>$title$</title>
<authors>["David Lewis"]</authors>
<owners>$author$</owners>
<licenseUrl>https://github.com/sdedalus/DiscriminatedUnion</licenseUrl>
<projectUrl>https://github.com/sdedalus/DiscriminatedUnion</projectUrl>
<iconUrl>https://github.com/sdedalus/DiscriminatedUnion</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>DiscriminatedUnion AutoMap Helper.</description>
<releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
<copyright>Copyright 2017</copyright>
<tags>Tag1 Tag2</tags>
</metadata>
<files>
<file src="DiscriminatedUnionAutoMap.dll" target="lib\net45" />
</files>
</package>
2 changes: 1 addition & 1 deletion src/DiscriminatedUnionAutoMap/FromUnionConverter`1.cs
Expand Up @@ -8,7 +8,7 @@ namespace UnionAutoMap
/// </summary>
/// <typeparam name="T1">The type of the 1.</typeparam>
/// <typeparam name="TDestination">The type of the destination.</typeparam>
/// <seealso cref="AutoMapper.ITypeConverter{DiscriminatedUnion.Union{T1}, TDestination}" />
/// <seealso cref="Union{T1}" />
public class FromUnionConverter<T1, TDestination> : ITypeConverter<Union<T1>, TDestination>
{
/// <summary>
Expand Down
2 changes: 1 addition & 1 deletion src/DiscriminatedUnionAutoMap/FromUnionConverter`2.cs
Expand Up @@ -9,7 +9,7 @@ namespace UnionAutoMap
/// <typeparam name="T1">The type of the 1.</typeparam>
/// <typeparam name="T2">The type of the 2.</typeparam>
/// <typeparam name="TDestination">The type of the destination.</typeparam>
/// <seealso cref="AutoMapper.ITypeConverter{DiscriminatedUnion.Union{T1, T2}, TDestination}" />
/// <seealso cref="Union{T1}" />
public class FromUnionConverter<T1, T2, TDestination> : ITypeConverter<Union<T1, T2>, TDestination>
{
/// <summary>
Expand Down
2 changes: 1 addition & 1 deletion src/DiscriminatedUnionAutoMap/FromUnionConverter`3.cs
Expand Up @@ -10,7 +10,7 @@ namespace UnionAutoMap
/// <typeparam name="T2">The type of the 2.</typeparam>
/// <typeparam name="T3">The type of the 3.</typeparam>
/// <typeparam name="TDestination">The type of the destination.</typeparam>
/// <seealso cref="AutoMapper.ITypeConverter{DiscriminatedUnion.Union{T1, T2, T3}, TDestination}" />
/// <seealso cref="Union{T1}" />
public class FromUnionConverter<T1, T2, T3, TDestination> : ITypeConverter<Union<T1, T2, T3>, TDestination>
{
/// <summary>
Expand Down
2 changes: 1 addition & 1 deletion src/DiscriminatedUnionAutoMap/FromUnionConverter`4.cs
Expand Up @@ -11,7 +11,7 @@ namespace UnionAutoMap
/// <typeparam name="T3">The type of the 3.</typeparam>
/// <typeparam name="T4">The type of the 4.</typeparam>
/// <typeparam name="TDestination">The type of the destination.</typeparam>
/// <seealso cref="AutoMapper.ITypeConverter{DiscriminatedUnion.Union{T1, T2, T3, T4}, TDestination}" />
/// <seealso cref="Union{T1}" />
public class FromUnionConverter<T1, T2, T3, T4, TDestination> : ITypeConverter<Union<T1, T2, T3, T4>, TDestination>
{
/// <summary>
Expand Down
2 changes: 1 addition & 1 deletion src/DiscriminatedUnionAutoMap/FromUnionConverter`5.cs
Expand Up @@ -12,7 +12,7 @@ namespace UnionAutoMap
/// <typeparam name="T4">The type of the 4.</typeparam>
/// <typeparam name="T5">The type of the 5.</typeparam>
/// <typeparam name="TDestination">The type of the destination.</typeparam>
/// <seealso cref="AutoMapper.ITypeConverter{DiscriminatedUnion.Union{T1, T2, T3, T4, T5}, TDestination}" />
/// <seealso cref="Union{T1}" />
public class FromUnionConverter<T1, T2, T3, T4, T5, TDestination> : ITypeConverter<Union<T1, T2, T3, T4, T5>, TDestination>
{
/// <summary>
Expand Down

0 comments on commit 029b9e8

Please sign in to comment.