|
| 1 | +#addin nuget:?package=Cake.Git&version=5.0.1 |
| 2 | +#addin nuget:?package=Cake.FileHelpers&version=7.0.0 |
| 3 | + |
| 4 | +var target = Argument("target", "Build"); |
| 5 | +var configuration = Argument("configuration", "Release"); |
| 6 | + |
| 7 | +Task("Restore") |
| 8 | + .Does(() => |
| 9 | +{ |
| 10 | + // 运行 dotnet restore |
| 11 | + DotNetRestore("./WorldLink.sln"); |
| 12 | +}); |
| 13 | + |
| 14 | +Task("PreBuild") |
| 15 | + .Does(() => |
| 16 | +{ |
| 17 | + var gitDescribe = GitDescribe("..", GitDescribeStrategy.Tags).Substring(1); // 获取 git describe 的输出 |
| 18 | + var buildDate = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ"); |
| 19 | + |
| 20 | + var shortVers = gitDescribe.Split('-'); |
| 21 | + string shortVer; |
| 22 | + if (shortVers.Length > 1) |
| 23 | + { |
| 24 | + shortVer = $"{shortVers[0]}.{shortVers[1]}"; |
| 25 | + } |
| 26 | + else |
| 27 | + { |
| 28 | + shortVer = shortVers[0]; |
| 29 | + } |
| 30 | + |
| 31 | + var versionContent = $@" |
| 32 | + // Auto-generated file. Do not modify manually. |
| 33 | + namespace WorldLink; |
| 34 | +
|
| 35 | + public static partial class BuildInfo |
| 36 | + {{ |
| 37 | + public const string Version = ""{shortVer}""; |
| 38 | + public const string GitVersion = ""{gitDescribe}""; |
| 39 | + public const string BuildDate = ""{buildDate}""; |
| 40 | + }} |
| 41 | + "; |
| 42 | + FileWriteText("./BuildInfo.g.cs", versionContent); |
| 43 | +}); |
| 44 | + |
| 45 | +Task("Build") |
| 46 | + .IsDependentOn("PreBuild") |
| 47 | + .IsDependentOn("Restore") |
| 48 | + .Does(() => |
| 49 | +{ |
| 50 | + // 使用 dotnet build 进行构建 |
| 51 | + DotNetBuild("./WorldLink.sln", new DotNetBuildSettings |
| 52 | + { |
| 53 | + Configuration = configuration |
| 54 | + }); |
| 55 | +}); |
| 56 | + |
| 57 | +RunTarget(target); |
0 commit comments