我使用蛋糕使用.csproj文件构建ASP.NET Core 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);
我该如何执行以下操作:
1.根据CSPROJ文件的版本递增修订号;
2.将项目推向github;
3.将包裹推到Myget。
- 对于这种事情,我使用了gitversion和MagicChunks的组合,它们都有蛋糕别名。gitversion用于断言仓库的版本编号,MagicChunks用于更新XML,JSON文件等不同部分。
- 您能确切地确认您的意思吗?您是在谈论将更改恢复到GitHub存储库中吗?如果是这样,您可能想看看蛋糕。或者,如果您是在谈论将文件推到github版本,则可能需要查看gitrelealeasemanager别名。
- 拥有Nuget软件包后,您应该能够使用NugetPush别名将软件包推向Myget。您将需要设置NugetPushSettings类的源属性。
根据您的某些评论,我正在稍微更新此答案...
我通常不使用蛋糕将更改推回源控制存储库。相反,我在源控件存储库中所做的承诺会导致构建的构建,通常使用某种形式的连续集成服务器,例如Appveyor或Teamcity。这样,您正在询问的提交消息将始终是用户所熟知的,因为他们正在提交提交,并且会知道发生了什么变化。通过使用这种方法,没有对存储库的自动提交,我个人认为这就是应该的。
基于上述内容,您只需要提到的发布目标即可。作为构建过程的一部分,gitversion将主张版本号,并允许您使用该版本编号创建Nuget软件包(然后不需要在存储库中额外提交),然后您可以将其推出nuget.org,和github。