Using FAKE to make repeatable build scripts

FAKE is a make inspired F# build engine. For those with little F# experience think of it like a build script written in the F# programming language with a lot of utility functions. The utility functions are really the bread and butter of FAKE.

I started using FAKE by creating a continuous deploy script for Voat.

To give a rough outline for what it does:

  • Build the UI Project
  • Build the Test Projects
  • Optionally migrate the database
  • Run Unit Tests
  • Run Integration Tests
  • MSDeploy to your personal server
  • Create a Web Deploy package
  • Send the Web Deploy package to AppVeyor

This appears to do a lot, but it only needed a couple hundred lines of F# code to do it.

Additionally you can leverage existing NuGet packages for F# like FSharp.Data to create strongly typed configuration files. And they are literally strongly typed as in FULL intellisense.

If you are looking to add repeatable build scripts to your existing project and want to learn something new then try FAKE. F# is a really awesome language. Implicitly typed function parameters are rad.

Written on July 20, 2015