Skip to content

Commit

Permalink
Use Octokit to release on github
Browse files Browse the repository at this point in the history
  • Loading branch information
forki committed Sep 19, 2014
1 parent 27a26f0 commit 68704bc
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 6 deletions.
60 changes: 57 additions & 3 deletions build.fsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,14 @@
// --------------------------------------------------------------------------------------

#r @"packages/FAKE/tools/NuGet.Core.dll"
#r @"packages/Octokit/lib/net45/Octokit.dll"
#r @"packages/FAKE/tools/FakeLib.dll"
open Fake
open Fake.Git
open Fake.AssemblyInfoFile
open Fake.ReleaseNotesHelper
open Octokit
open System.IO
open System
#if MONO
#else
Expand Down Expand Up @@ -52,7 +55,8 @@ let testAssemblies = "tests/**/bin/Release/*Tests*.dll"

// Git configuration (used for publishing documentation in gh-pages branch)
// The profile where the project is posted
let gitHome = "https://github.com/fsprojects"
let gitOwner = "fsprojects"
let gitHome = "https://github.com/" + gitOwner

// The name of the project on GitHub
let gitName = "Paket"
Expand All @@ -67,6 +71,7 @@ let gitRaw = environVarOrDefault "gitRaw" "https://raw.github.com/fsprojects"
let buildDir = "bin"
let buildMergedDir = buildDir @@ "merged"


// Read additional information from the release notes document
let release = LoadReleaseNotes "RELEASE_NOTES.md"

Expand Down Expand Up @@ -217,17 +222,66 @@ Target "ReleaseDocs" (fun _ ->
fullclean tempDocsDir
CopyRecursive "docs/output" tempDocsDir true |> tracefn "%A"
StageAll tempDocsDir
Commit tempDocsDir (sprintf "Update generated documentation for version %s" release.NugetVersion)
Git.Commit.Commit tempDocsDir (sprintf "Update generated documentation for version %s" release.NugetVersion)
Branches.push tempDocsDir
)

Target "Release" (fun _ ->
StageAll ""
Commit "" (sprintf "Bump version to %s" release.NugetVersion)
Git.Commit.Commit "" (sprintf "Bump version to %s" release.NugetVersion)
Branches.push ""

Branches.tag "" release.NugetVersion
Branches.pushTag "" "origin" release.NugetVersion

// release on github
let github = new GitHubClient(new ProductHeaderValue("FAKE"))
github.Credentials <- Credentials(getBuildParamOrDefault "github-user" "",getBuildParamOrDefault "github-pw" "")

let newRelease = new ReleaseUpdate(release.NugetVersion)
newRelease.Name <- release.NugetVersion
newRelease.Body <- toLines release.Notes
newRelease.Draft <- true
newRelease.Prerelease <- false

let released =
Async.AwaitTask (github.Release.Create(gitOwner, gitName, newRelease))
|> Async.RunSynchronously

tracefn "Created release id %d" released.Id

let archiveContents = File.OpenRead("bin/merged/paket.exe")
let assetUpload = new ReleaseAssetUpload()
assetUpload.FileName <- "paket.exe"
assetUpload.ContentType <- "application/octet-stream"
assetUpload.RawData <- archiveContents

let asset =
Async.AwaitTask (github.Release.UploadAsset(released, assetUpload))
|> Async.RunSynchronously

tracefn "Uploaded %s" asset.Name

let archiveContents = File.OpenRead("bin/paket.bootstrapper.exe")
let assetUpload = new ReleaseAssetUpload()
assetUpload.FileName <- "paket.exe"
assetUpload.ContentType <- "application/octet-stream"
assetUpload.RawData <- archiveContents

let asset =
Async.AwaitTask (github.Release.UploadAsset(released, assetUpload))
|> Async.RunSynchronously

tracefn "Uploaded %s" asset.Name

let update = released.ToUpdate()
update.Draft <- false

let released =
Async.AwaitTask (github.Release.Edit(gitOwner, gitName, released.Id, update))
|> Async.RunSynchronously

tracefn "Released %d on github" released.Id
)

Target "BuildPackage" DoNothing
Expand Down
1 change: 1 addition & 0 deletions paket.dependencies
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
source http://nuget.org/api/v2

nuget Octokit
nuget Newtonsoft.Json
nuget UnionArgParser
nuget NUnit.Runners >= 2.6
Expand Down
10 changes: 9 additions & 1 deletion paket.lock
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,22 @@ NUGET
RazorEngine (3.3.0)
FSharp.Compiler.Service (0.0.59)
Microsoft.AspNet.Razor (2.0.30506.0)
Microsoft.Bcl (1.1.9)
Microsoft.Bcl.Build (>= 1.0.14)
Microsoft.Bcl.Build (1.0.21)
Microsoft.Net.Http (2.2.28)
Microsoft.Bcl (>= 1.1.9)
Microsoft.Bcl.Build (>= 1.0.14)
NUnit (2.6.3)
NUnit.Runners (2.6.3)
Newtonsoft.Json (6.0.5)
Octokit (0.4.1)
Microsoft.Net.Http (>= 0)
RazorEngine (3.3.0)
Microsoft.AspNet.Razor (>= 2.0.30506.0)
SourceLink.Fake (0.3.4)
UnionArgParser (0.8.0)
GITHUB
remote: forki/FsUnit
specs:
FsUnit.fs (7623fc13439f0e60bd05c1ed3b5f6dcb937fe468)
FsUnit.fs (7623fc13439f0e60bd05c1ed3b5f6dcb937fe468)
4 changes: 2 additions & 2 deletions src/Paket.Bootstrapper/Paket.Bootstrapper.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<OutputPath>..\..\bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
Expand All @@ -27,7 +27,7 @@
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<OutputPath>..\..\bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
Expand Down

0 comments on commit 68704bc

Please sign in to comment.