使用蛋糕定义版本并将项目推到github和myget



我使用蛋糕使用.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。

  1. 对于这种事情,我使用了gitversion和MagicChunks的组合,它们都有蛋糕别名。gitversion用于断言仓库的版本编号,MagicChunks用于更新XML,JSON文件等不同部分。
  2. 您能确切地确认您的意思吗?您是在谈论将更改恢复到GitHub存储库中吗?如果是这样,您可能想看看蛋糕。或者,如果您是在谈论将文件推到github版本,则可能需要查看gitrelealeasemanager别名。
  3. 拥有Nuget软件包后,您应该能够使用NugetPush别名将软件包推向Myget。您将需要设置NugetPushSettings类的源属性。

根据您的某些评论,我正在稍微更新此答案...

我通常不使用蛋糕将更改推回源控制存储库。相反,我在源控件存储库中所做的承诺会导致构建的构建,通常使用某种形式的连续集成服务器,例如Appveyor或Teamcity。这样,您正在询问的提交消息将始终是用户所熟知的,因为他们正在提交提交,并且会知道发生了什么变化。通过使用这种方法,没有对存储库的自动提交,我个人认为这就是应该的。

基于上述内容,您只需要提到的发布目标即可。作为构建过程的一部分,gitversion将主张版本号,并允许您使用该版本编号创建Nuget软件包(然后不需要在存储库中额外提交),然后您可以将其推出nuget.org,和github。

最新更新