Skip to content

Commit 7d52bd6

Browse files
committed
Initial Commit
1 parent 08864be commit 7d52bd6

15 files changed

+756
-0
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#### Akka.Logger.Serilog ####
2+
3+
This is the Serilog integration plugin for Akka.NET. Please check out our [documentation](http://getakka.net/docs/Serilog) on how to get the most out of this plugin

RELEASE_NOTES.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#### 1.0.7 Februari 18 2016 ####
2+
3+
Support for Akka 1.0.7

build.cmd

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
@echo off
2+
3+
pushd %~dp0
4+
5+
SETLOCAL
6+
SET CACHED_NUGET=%LocalAppData%\NuGet\NuGet.exe
7+
8+
IF EXIST %CACHED_NUGET% goto copynuget
9+
echo Downloading latest version of NuGet.exe...
10+
IF NOT EXIST %LocalAppData%\NuGet md %LocalAppData%\NuGet
11+
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "$ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest 'https://www.nuget.org/nuget.exe' -OutFile '%CACHED_NUGET%'"
12+
13+
:copynuget
14+
IF EXIST src\.nuget\nuget.exe goto restore
15+
md src\.nuget
16+
copy %CACHED_NUGET% src\.nuget\nuget.exe > nul
17+
18+
:restore
19+
20+
src\.nuget\NuGet.exe update -self
21+
22+
23+
pushd %~dp0
24+
25+
src\.nuget\NuGet.exe update -self
26+
27+
src\.nuget\NuGet.exe install FAKE -ConfigFile src\.nuget\Nuget.Config -OutputDirectory src\packages -ExcludeVersion -Version 4.16.1
28+
29+
src\.nuget\NuGet.exe install NUnit.Console -ConfigFile src\.nuget\Nuget.Config -OutputDirectory src\packages\FAKE -ExcludeVersion -Version 3.0.0
30+
31+
if not exist src\packages\SourceLink.Fake\tools\SourceLink.fsx (
32+
src\.nuget\nuget.exe install SourceLink.Fake -ConfigFile src\.nuget\Nuget.Config -OutputDirectory src\packages -ExcludeVersion
33+
)
34+
rem cls
35+
36+
set encoding=utf-8
37+
src\packages\FAKE\tools\FAKE.exe build.fsx %*
38+
39+
popd

build.fsx

Lines changed: 323 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,323 @@
1+
#I @"src/packages/FAKE/tools"
2+
#r "FakeLib.dll"
3+
#r "System.Xml.Linq"
4+
5+
open System
6+
open System.IO
7+
open System.Text
8+
open Fake
9+
open Fake.FileUtils
10+
open Fake.TaskRunnerHelper
11+
open Fake.ProcessHelper
12+
13+
cd __SOURCE_DIRECTORY__
14+
15+
//--------------------------------------------------------------------------------
16+
// Information about the project for Nuget and Assembly info files
17+
//--------------------------------------------------------------------------------
18+
19+
20+
let product = "Akka.NET"
21+
let authors = [ "Akka.NET Team" ]
22+
let copyright = "Copyright © 2013-2016 Akka.NET Team"
23+
let company = "Akka.NET Team"
24+
let description = "Akka.NET is a port of the popular Java/Scala framework Akka to .NET"
25+
let tags = ["akka";"actors";"actor";"model";"Akka";"concurrency"]
26+
let configuration = "Release"
27+
let toolDir = "tools"
28+
let CloudCopyDir = toolDir @@ "CloudCopy"
29+
let AzCopyDir = toolDir @@ "AzCopy"
30+
31+
// Read release notes and version
32+
33+
let parsedRelease =
34+
File.ReadLines "RELEASE_NOTES.md"
35+
|> ReleaseNotesHelper.parseReleaseNotes
36+
37+
let envBuildNumber = System.Environment.GetEnvironmentVariable("BUILD_NUMBER")
38+
let buildNumber = if String.IsNullOrWhiteSpace(envBuildNumber) then "0" else envBuildNumber
39+
40+
let version = parsedRelease.AssemblyVersion + "." + buildNumber
41+
let preReleaseVersion = version + "-beta"
42+
43+
let isUnstableDocs = hasBuildParam "unstable"
44+
let isPreRelease = hasBuildParam "nugetprerelease"
45+
let release = if isPreRelease then ReleaseNotesHelper.ReleaseNotes.New(version, version + "-beta", parsedRelease.Notes) else parsedRelease
46+
47+
printfn "Assembly version: %s\nNuget version; %s\n" release.AssemblyVersion release.NugetVersion
48+
//--------------------------------------------------------------------------------
49+
// Directories
50+
51+
let binDir = "bin"
52+
let perfOutput = FullName "PerfResults"
53+
54+
let nugetDir = binDir @@ "nuget"
55+
let workingDir = binDir @@ "build"
56+
let libDir = workingDir @@ @"lib\net45\"
57+
let nugetExe = FullName @"src\.nuget\NuGet.exe"
58+
let docDir = "bin" @@ "doc"
59+
60+
open Fake.RestorePackageHelper
61+
Target "RestorePackages" (fun _ ->
62+
"./src/Akka.Logger.Serilog.sln"
63+
|> RestoreMSSolutionPackages (fun p ->
64+
{ p with
65+
OutputPath = "./src/packages"
66+
Retries = 4 })
67+
)
68+
69+
//--------------------------------------------------------------------------------
70+
// Clean build results
71+
72+
Target "Clean" <| fun _ ->
73+
DeleteDir binDir
74+
75+
//--------------------------------------------------------------------------------
76+
// Generate AssemblyInfo files with the version for release notes
77+
78+
open AssemblyInfoFile
79+
80+
Target "AssemblyInfo" <| fun _ ->
81+
CreateCSharpAssemblyInfoWithConfig "src/SharedAssemblyInfo.cs" [
82+
Attribute.Company company
83+
Attribute.Copyright copyright
84+
Attribute.Trademark ""
85+
Attribute.Version version
86+
Attribute.FileVersion version ] <| AssemblyInfoFileConfig(false)
87+
88+
89+
//--------------------------------------------------------------------------------
90+
// Build the solution
91+
92+
Target "Build" <| fun _ ->
93+
94+
!!"src/Akka.Logger.Serilog.sln"
95+
|> MSBuildRelease "" "Rebuild"
96+
|> ignore
97+
98+
//--------------------------------------------------------------------------------
99+
// Copy the build output to bin directory
100+
//--------------------------------------------------------------------------------
101+
102+
Target "CopyOutput" <| fun _ ->
103+
104+
let copyOutput project =
105+
let src = "src" @@ project @@ @"bin/Release/"
106+
let dst = binDir @@ project
107+
CopyDir dst src allFiles
108+
[ "Akka.Logger.Serilog" ]
109+
|> List.iter copyOutput
110+
111+
Target "BuildRelease" DoNothing
112+
113+
//--------------------------------------------------------------------------------
114+
// Nuget targets
115+
//--------------------------------------------------------------------------------
116+
117+
//--------------------------------------------------------------------------------
118+
// Clean nuget directory
119+
120+
Target "CleanNuget" <| fun _ ->
121+
CleanDir nugetDir
122+
123+
//--------------------------------------------------------------------------------
124+
// Pack nuget for all projects
125+
// Publish to nuget.org if nugetkey is specified
126+
127+
let createNugetPackages _ =
128+
let removeDir dir =
129+
let del _ =
130+
DeleteDir dir
131+
not (directoryExists dir)
132+
runWithRetries del 3 |> ignore
133+
134+
ensureDirectory nugetDir
135+
for nuspec in !! "src/**/*.nuspec" do
136+
printfn "Creating nuget packages for %s" nuspec
137+
138+
CleanDir workingDir
139+
140+
let project = Path.GetFileNameWithoutExtension nuspec
141+
let projectDir = Path.GetDirectoryName nuspec
142+
let projectFile = (!! (projectDir @@ project + ".*sproj")) |> Seq.head
143+
let releaseDir = projectDir @@ @"bin\Release"
144+
let packages = projectDir @@ "packages.config"
145+
let packageDependencies = if (fileExists packages) then (getDependencies packages) else []
146+
147+
let pack outputDir symbolPackage =
148+
NuGetHelper.NuGet
149+
(fun p ->
150+
{ p with
151+
Description = description
152+
Authors = authors
153+
Copyright = copyright
154+
Project = project
155+
Properties = ["Configuration", "Release"]
156+
ReleaseNotes = release.Notes |> String.concat "\n"
157+
Version = release.NugetVersion
158+
Tags = tags |> String.concat " "
159+
OutputPath = outputDir
160+
WorkingDir = workingDir
161+
SymbolPackage = symbolPackage
162+
Dependencies = packageDependencies })
163+
nuspec
164+
165+
// Copy dll, pdb and xml to libdir = workingDir/lib/net45/
166+
ensureDirectory libDir
167+
!! (releaseDir @@ project + ".dll")
168+
++ (releaseDir @@ project + ".pdb")
169+
++ (releaseDir @@ project + ".xml")
170+
++ (releaseDir @@ project + ".ExternalAnnotations.xml")
171+
|> CopyFiles libDir
172+
173+
// Copy all src-files (.cs and .fs files) to workingDir/src
174+
let nugetSrcDir = workingDir @@ @"src/"
175+
// CreateDir nugetSrcDir
176+
177+
let isCs = hasExt ".cs"
178+
let isFs = hasExt ".fs"
179+
let isAssemblyInfo f = (filename f).Contains("AssemblyInfo")
180+
let isSrc f = (isCs f || isFs f) && not (isAssemblyInfo f)
181+
CopyDir nugetSrcDir projectDir isSrc
182+
183+
//Remove workingDir/src/obj and workingDir/src/bin
184+
removeDir (nugetSrcDir @@ "obj")
185+
removeDir (nugetSrcDir @@ "bin")
186+
187+
// Create both normal nuget package and symbols nuget package.
188+
// Uses the files we copied to workingDir and outputs to nugetdir
189+
pack nugetDir NugetSymbolPackage.Nuspec
190+
191+
removeDir workingDir
192+
193+
let publishNugetPackages _ =
194+
let rec publishPackage url accessKey trialsLeft packageFile =
195+
let tracing = enableProcessTracing
196+
enableProcessTracing <- false
197+
let args p =
198+
match p with
199+
| (pack, key, "") -> sprintf "push \"%s\" %s" pack key
200+
| (pack, key, url) -> sprintf "push \"%s\" %s -source %s" pack key url
201+
202+
tracefn "Pushing %s Attempts left: %d" (FullName packageFile) trialsLeft
203+
try
204+
let result = ExecProcess (fun info ->
205+
info.FileName <- nugetExe
206+
info.WorkingDirectory <- (Path.GetDirectoryName (FullName packageFile))
207+
info.Arguments <- args (packageFile, accessKey,url)) (System.TimeSpan.FromMinutes 1.0)
208+
enableProcessTracing <- tracing
209+
if result <> 0 then failwithf "Error during NuGet symbol push. %s %s" nugetExe (args (packageFile, "key omitted",url))
210+
with exn ->
211+
if (trialsLeft > 0) then (publishPackage url accessKey (trialsLeft-1) packageFile)
212+
else raise exn
213+
let shouldPushNugetPackages = hasBuildParam "nugetkey"
214+
let shouldPushSymbolsPackages = (hasBuildParam "symbolspublishurl") && (hasBuildParam "symbolskey")
215+
216+
if (shouldPushNugetPackages || shouldPushSymbolsPackages) then
217+
printfn "Pushing nuget packages"
218+
if shouldPushNugetPackages then
219+
let normalPackages=
220+
!! (nugetDir @@ "*.nupkg")
221+
-- (nugetDir @@ "*.symbols.nupkg") |> Seq.sortBy(fun x -> x.ToLower())
222+
for package in normalPackages do
223+
try
224+
publishPackage (getBuildParamOrDefault "nugetpublishurl" "") (getBuildParam "nugetkey") 3 package
225+
with exn ->
226+
printfn "%s" exn.Message
227+
228+
if shouldPushSymbolsPackages then
229+
let symbolPackages= !! (nugetDir @@ "*.symbols.nupkg") |> Seq.sortBy(fun x -> x.ToLower())
230+
for package in symbolPackages do
231+
try
232+
publishPackage (getBuildParam "symbolspublishurl") (getBuildParam "symbolskey") 3 package
233+
with exn ->
234+
printfn "%s" exn.Message
235+
236+
237+
Target "Nuget" <| fun _ ->
238+
createNugetPackages()
239+
publishNugetPackages()
240+
241+
Target "CreateNuget" <| fun _ ->
242+
createNugetPackages()
243+
244+
Target "PublishNuget" <| fun _ ->
245+
publishNugetPackages()
246+
247+
248+
249+
//--------------------------------------------------------------------------------
250+
// Help
251+
//--------------------------------------------------------------------------------
252+
253+
Target "Help" <| fun _ ->
254+
List.iter printfn [
255+
"usage:"
256+
"build [target]"
257+
""
258+
" Targets for building:"
259+
" * Build Builds"
260+
" * Nuget Create and optionally publish nugets packages"
261+
" * All Builds, run tests, creates and optionally publish nuget packages"
262+
""
263+
" Other Targets"
264+
" * Help Display this help"
265+
" * HelpNuget Display help about creating and pushing nuget packages"
266+
""]
267+
268+
Target "HelpNuget" <| fun _ ->
269+
List.iter printfn [
270+
"usage: "
271+
"build Nuget [nugetkey=<key> [nugetpublishurl=<url>]] "
272+
" [symbolskey=<key> symbolspublishurl=<url>] "
273+
" [nugetprerelease=<prefix>]"
274+
""
275+
"Arguments for Nuget target:"
276+
" nugetprerelease=<prefix> Creates a pre-release package."
277+
" The version will be version-prefix<date>"
278+
" Example: nugetprerelease=dev =>"
279+
" 0.6.3-dev1408191917"
280+
""
281+
"In order to publish a nuget package, keys must be specified."
282+
"If a key is not specified the nuget packages will only be created on disk"
283+
"After a build you can find them in bin/nuget"
284+
""
285+
"For pushing nuget packages to nuget.org and symbols to symbolsource.org"
286+
"you need to specify nugetkey=<key>"
287+
" build Nuget nugetKey=<key for nuget.org>"
288+
""
289+
"For pushing the ordinary nuget packages to another place than nuget.org specify the url"
290+
" nugetkey=<key> nugetpublishurl=<url> "
291+
""
292+
"For pushing symbols packages specify:"
293+
" symbolskey=<key> symbolspublishurl=<url> "
294+
""
295+
"Examples:"
296+
" build Nuget Build nuget packages to the bin/nuget folder"
297+
""
298+
" build Nuget nugetprerelease=dev Build pre-release nuget packages"
299+
""
300+
" build Nuget nugetkey=123 Build and publish to nuget.org and symbolsource.org"
301+
""
302+
" build Nuget nugetprerelease=dev nugetkey=123 nugetpublishurl=http://abc"
303+
" symbolskey=456 symbolspublishurl=http://xyz"
304+
" Build and publish pre-release nuget packages to http://abc"
305+
" and symbols packages to http://xyz"
306+
""]
307+
308+
//--------------------------------------------------------------------------------
309+
// Target dependencies
310+
//--------------------------------------------------------------------------------
311+
312+
// build dependencies
313+
"Clean" ==> "AssemblyInfo" ==> "RestorePackages" ==> "Build" ==> "CopyOutput" ==> "BuildRelease"
314+
315+
// nuget dependencies
316+
"CleanNuget" ==> "CreateNuget"
317+
"CleanNuget" ==> "BuildRelease" ==> "Nuget"
318+
319+
Target "All" DoNothing
320+
"BuildRelease" ==> "All"
321+
"Nuget" ==> "All"
322+
323+
RunTargetOrDefault "Help"

src/.nuget/NuGet.Config

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<configuration>
3+
<solution>
4+
<add key="disableSourceControlIntegration" value="true" />
5+
</solution>
6+
<activePackageSource>
7+
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
8+
</activePackageSource>
9+
</configuration>

0 commit comments

Comments
 (0)