FAKE + BuildMagic

14 views
Skip to first unread message

Ryan Riley

unread,
Sep 6, 2012, 10:00:44 AM9/6/12
to fshar...@googlegroups.com
It would be really cool to see FAKE used with BuildMagic to avoid having to store any assemblies in source control. I assume this would mean that MSBuild would need to be used to kick off the build rather than FAKE, which would then be downloaded and used to run the rest of the build. Is this just extra indirection, or would this be useful to anyone?

Mauricio Scheffer

unread,
Sep 9, 2012, 6:24:53 PM9/9/12
to fshar...@googlegroups.com
FWIW I think it's interesting. It could be a NuGet package depending on both FAKE and BuildMagic, that consisted of a small Powershell script acting as a wrapper around FAKE but first making sure BuildMagic is run.

Anton Tayanovskyy

unread,
Mar 5, 2013, 9:01:24 PM3/5/13
to fshar...@googlegroups.com
Hi,

It was pointed out to me that BuildMagic is now obsolete since NuGet targets have the same mechanics built-in these days. I had success with a setup where I commit NuGet.targets and a little bootstrapper MSBuild file, and that downloads FAKE and kicks it in. WebSharper repository will soon be using this approach. There are two things really:

1. Ability to do two steps, first get NuGet dependencies, then run the FAKE build. You can then use NuGet dependencies from FAKE. 

2. MSBuild starts the build - this does sound like an extra indirection but sometimes it is hard-wired, as in the case of AppHarbor.

For #1 like to see an improved FSI that compiles incrementally. Then there would be less of a need to do such hacks, since an incremental FSI would have an arbitrary number interleaved compile/execute stages. You can imagine something like this:

download "dep.dll"
;; // compile and execute everything before this line before going further
#r "dep.dll"
open Dep
...


Thanks,

--A

Steffen Forkmann

unread,
Mar 6, 2013, 10:29:20 AM3/6/13
to fshar...@googlegroups.com

Hi,

 

what I usually do is:

 

1)      Commit nuget.exe to the repo

2)      Create a bat which uses nuget to download the latest FAKE version

3)      The first target in the build script uses the RestorePackages task (https://github.com/fsharp/FAKE/blob/develop/src/app/FakeLib/RestorePackageHelper.fs#L34) to download all dependencies

4)      Create a build.bat which does 1-3 (and of course a build) in one go

 

This is all used as dog food in the FAKE build itself, see https://github.com/fsharp/FAKE/blob/develop/build.cmd

 

Cheers,

Steffen

--
Sie haben diese Nachricht erhalten, weil Sie der Google Groups-Gruppe FAKE - F# Make beigetreten sind.
Um Ihr Abonnement für diese Gruppe zu beenden und keine E-Mails mehr von dieser Gruppe zu erhalten, senden Sie eine Email an fsharpMake+...@googlegroups.com.
Weitere Optionen: https://groups.google.com/groups/opt_out
 
 

Anton Tayanovskyy

unread,
Mar 6, 2013, 10:38:06 AM3/6/13
to fshar...@googlegroups.com
Yes, this is almost as good as it gets. I just discovered a way to
bypass step 1. Not really worth it perhaps. --A
--
Kind Regards,
Anton Tayanovskyy

WebSharper™ - type-safe JavaScript in F#
http://intellifactory.com
Reply all
Reply to author
Forward
0 new messages