Cake를 사용하여 .csproj 파일로 ASP.NET 코어 1.1을 빌드하고 있습니다. 소스를 Github에 푸시하고 패키지를 MyGet에 게시해야합니다.Cake를 사용하여 버전을 정의하고 프로젝트를 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. 수동으로 파일을 추가하고 로컬 저장소에 커밋 한 다음 Build 스크립트를 사용하여 GitVersion에 커밋 메시지 및 정보가 전달되도록 푸시합니다. 내가 Cake 스크립트 GitCommit (http://cakebuild.net/api/Cake.Git/GitCommit/)에 포함 시켰기 때문에 이것을 묻는다. 빌드 할 때마다 커밋이 생성되어 원격 저장소에 푸시된다. 하지만 내 문제는이 경우 커밋 메시지를 정의하는 방법이었습니다. 내 질문을 이해하니? –
2. 나는 Github 저장소로 그것들을 밀어 넣고, 그렇게 할 필요가있을 때 태그로써 버전으로 릴리즈를 추진하고있다. 나는 2 가지 목표를 가지고 있다고 생각하고 있었다. "Default"는 Commit and Push로 버전 패치를 변경했지만 Github Tag는없고 누그없이 Nuget을 변경했다. 그리고 Tag를 추가하고 Nuget에도 그것을 밀어 넣을 다른 목표 "Release"를 가져라. 그것은 의미가 있습니까? –
위의 답에 몇 가지 추가 노트를 추가했습니다. –