|
1 | 1 | #! "netcoreapp2.0"
|
2 |
| -#r "nuget:NetStandard.Library,2.0.0" |
3 |
| -#r "nuget:Microsoft.DotNet.PlatformAbstractions, 2.0.3" |
4 |
| -#load "DotNet.csx" |
| 2 | +#load "nuget:Dotnet.Build, 0.2.7" |
| 3 | +#load "nuget:github-changelog, 0.1.4" |
5 | 4 | #load "Choco.csx"
|
6 |
| -#load "NuGet.csx" |
7 |
| -#load "FileUtils.csx" |
| 5 | +#load "BuildContext.csx" |
8 | 6 |
|
9 |
| -using System.Runtime.InteropServices; |
10 |
| - |
11 |
| - |
12 |
| -var currentFolder = Path.GetDirectoryName(GetScriptPath()); |
13 |
| -var root = Path.GetFullPath(Path.Combine(currentFolder, "..")); |
14 |
| - |
15 |
| - |
16 |
| -DotNet.Build(Path.Combine(root, "src","Dotnet.Script")); |
17 |
| - |
18 |
| -DotNet.Test($"{root}/src/Dotnet.Script.Tests"); |
| 7 | +using static BuildContext; |
| 8 | +using static ReleaseManagement; |
| 9 | +using static ChangeLog; |
| 10 | +using static FileUtils; |
19 | 11 |
|
| 12 | +DotNet.Build(DotnetScriptProjectFolder); |
| 13 | +DotNet.Test(TestProjectFolder); |
| 14 | +DotNet.Publish(DotnetScriptProjectFolder, PublishArtifactsFolder); |
20 | 15 |
|
21 | 16 | // We only publish packages from Windows/AppVeyor
|
22 |
| -if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) |
| 17 | +if (BuildEnvironment.IsWindows) |
23 | 18 | {
|
24 |
| - string packagesOutputFolder = Path.Combine(root, "build", "NuGet"); |
25 |
| - DotNet.Pack(Path.Combine(root, "src" , "Dotnet.Script"), packagesOutputFolder); |
26 |
| - DotNet.Pack(Path.Combine(root, "src" , "Dotnet.Script.Core"), packagesOutputFolder); |
27 |
| - DotNet.Pack(Path.Combine(root, "src" , "Dotnet.Script.DependencyModel"), packagesOutputFolder); |
28 |
| - DotNet.Pack(Path.Combine(root, "src" , "Dotnet.Script.DependencyModel.NuGet"), packagesOutputFolder); |
29 |
| - DotNet.Publish($"{root}/src/Dotnet.Script"); |
30 |
| - Choco.Pack($"{root}/src/Dotnet.Script","Chocolatey"); |
| 19 | + DotNet.Pack(DotnetScriptProjectFolder, NuGetArtifactsFolder); |
| 20 | + DotNet.Pack(DotnetScriptCoreProjectFolder, NuGetArtifactsFolder); |
| 21 | + DotNet.Pack(DotnetScriptDependencyModelProjectFolder, NuGetArtifactsFolder); |
| 22 | + DotNet.Pack(DotnetScriptDependencyModelNuGetProjectFolder, NuGetArtifactsFolder); |
| 23 | + Choco.Pack(DotnetScriptProjectFolder, PublishArtifactsFolder, ChocolateyArtifactsFolder); |
| 24 | + Zip(PublishArchiveFolder, PathToGitHubReleaseAsset); |
| 25 | + |
| 26 | + |
| 27 | + if (BuildEnvironment.IsSecure) |
| 28 | + { |
| 29 | + await CreateReleaseNotes(); |
| 30 | + |
| 31 | + if (Git.Default.IsTagCommit()) |
| 32 | + { |
| 33 | + Git.Default.RequreCleanWorkingTree(); |
| 34 | + await ReleaseManagerFor(Owner,ProjectName,BuildEnvironment.GitHubAccessToken) |
| 35 | + .CreateRelease(Git.Default.GetLatestTag(), PathToReleaseNotes, new [] { new ZipReleaseAsset(PathToGitHubReleaseAsset) }); |
| 36 | + NuGet.TryPush(NuGetArtifactsFolder); |
| 37 | + } |
| 38 | + } |
31 | 39 | }
|
32 | 40 |
|
33 |
| - |
| 41 | +private async Task CreateReleaseNotes() |
| 42 | +{ |
| 43 | + Logger.Log("Creating release notes"); |
| 44 | + var generator = ChangeLogFrom(Owner, ProjectName, BuildEnvironment.GitHubAccessToken).SinceLatestTag(); |
| 45 | + if (!Git.Default.IsTagCommit()) |
| 46 | + { |
| 47 | + generator = generator.IncludeUnreleased(); |
| 48 | + } |
| 49 | + await generator.Generate(PathToReleaseNotes); |
| 50 | +} |
0 commit comments