使用Cake定义版本并将项目推送到Github和MyGet
我正在使用Cake构建一个ASP.NET Core 1.1和.csproj文件。我需要将源代码推送到Github并将包发布到MyGet。现在我有了剧本:使用Cake定义版本并将项目推送到Github和MyGet,github,asp.net-core,cakebuild,myget,Github,Asp.net Core,Cakebuild,Myget,我正在使用Cake构建一个ASP.NET Core 1.1和.csproj文件。我需要将源代码推送到Github并将包发布到MyGet。现在我有了剧本: String target = Argument<String>("target", "Default"); Task("Clean").Does(() => { if (DirectoryExists("./build")) DeleteDirectory("./build", true); Cr
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);
String target=参数(“目标”,“默认”);
任务(“清理”)。是否(()=>{
如果(目录存在(“./build”))
DeleteDirectory(“./build”,true);
CreateDirectory(“./build”);
});
任务(“还原”)。没有(()=>{
FilePathCollection projects=GetFiles(“./***/*.csproj”);
foreach(项目中的文件路径项目)
DotNetCoreRestore(project.FullPath);
});
任务(“构建”).IsDependentOn(“清理”).IsDependentOn(“还原”).Does(()=>{
FilePathCollection projects=GetFiles(“./***/*.csproj”);
foreach(项目中的文件路径项目)
DotNetCoreBuild(project.FullPath);
});
任务(“测试”).IsDependentOn(“构建”).do(()=>{
FilePathCollection projects=GetFiles(“./test/***.csproj”);
foreach(项目中的文件路径项目)
DotNetCoreTest(project.FullPath);
});
任务(“包”).IsDependentOn(“测试”).do(()=>{
DotNetCorePack(“./src/MyProject.csproj”,新的dotnetcorepacks设置{OutputDirectory=“./build/MyProject/”});
});
任务(“默认”)。IsDependentOn(“包”);
运行目标(target);
如何执行以下操作:1.根据csproj文件的版本增加修订号
2.将项目推送到Github
3.把包裹推给我
基于上述情况,您只需要您提到的发布目标。作为构建过程的一部分,GitVersion将声明版本号,并允许您使用该版本号创建NuGet包(这样就不需要额外提交到存储库),然后您可以推送到NuGet.org和GitHub。1。因此,您需要手动添加文件并提交到本地存储库,然后使用构建脚本来推送它们,以便获取提交消息和信息?我这样问是因为我在我的蛋糕脚本GitCommit()中包含了一个commit,所以每次我构建它时,都会创建一个commit并将其推送到远程存储库。但我的问题是在这种情况下如何定义提交消息。你明白我的问题吗。我说的是提交更改并将其推送到Github存储库,以及在需要时将版本作为标记推送发布。我考虑有两个目标:“默认”提交和推送更改,版本补丁中有更改,但没有Github标记,也没有推送无Nuget。还有另一个目标“Release”,它将添加一个标签并将其推送到Nuget。这有意义吗?我在上面的回答中添加了一些额外的注释。