我正在使用Cake构建一个带有ASP.NET文件的.csproj核心1.1。我需要将源代码推送到Github,并将包发布到MyGet。现在我有了剧本:
String target = Argument<String>("target", "Default");
Task("Clean").Does(() => {
if (DirectoryExists("./build"))
DeleteDirectory("./build", true);
CreateDirectory("./build");
});
Task("Restore").Does(() => {
FilePathCollection projects = GetFiles("./**/*.csproj");
foreach(FilePath project in projects)
DotNetCoreRestore(project.FullPath);
});
Task("Build").IsDependentOn("Clean").IsDependentOn("Restore").Does(() => {
FilePathCollection projects = GetFiles("./**/*.csproj");
foreach(FilePath project in projects)
DotNetCoreBuild(project.FullPath);
});
Task("Test").IsDependentOn("Build").Does(() => {
FilePathCollection projects = GetFiles("./test/**/*.csproj");
foreach(FilePath project in projects)
DotNetCoreTest(project.FullPath);
});
Task("Pack").IsDependentOn("Test").Does(() => {
DotNetCorePack("./src/MyProject.csproj", new DotNetCorePackSettings { OutputDirectory = "./build/MyProject/" });
});
Task("Default").IsDependentOn("Pack");
RunTarget(target);
我怎样才能做到以下几点:
发布于 2017-03-12 02:29:50
根据你的一些评论,我要稍微更新一下这个答案.
我通常不使用Cake将更改推回源代码管理存储库。相反,我在源代码管理存储库中进行的提交会导致我的构建被触发,通常使用某种形式的连续集成服务器(如AppVeyor或TeamCity )。这样,您询问的提交消息将始终为用户所知,因为他们正在进行提交,并且知道发生了什么变化。通过使用这种方法,在存储库中没有自动提交,我个人认为应该是这样的。
基于上述,您只需要您提到的发布目标。作为构建过程的一部分,GitVersion将断言版本号,并允许您使用该版本号创建NuGet包(然后不需要对存储库进行额外的提交),然后可以将其推送到NuGet.org和GitHub。
https://stackoverflow.com/questions/42737182
复制