-version: '1.1.{build}'
+version: '{build}'
+
+environment:
+ IMPOSTOR_VERSION: '1.1.0'
+ DOTNET_CLI_TELEMETRY_OPTOUT: 1
branches:
except:
patch: false
dotnet_csproj:
- patch: true
- file: '**\*.csproj;**\*.props'
- version: '{version}'
- package_version: '{version}'
- assembly_version: '{version}'
- file_version: '{version}'
- informational_version: '{version}'
+ patch: false
image: Visual Studio 2019 Preview
-environment:
- DOTNET_CLI_TELEMETRY_OPTOUT: 1
-
install:
- git submodule update --init --recursive
- ps: dotnet tool restore
-var buildVersion = EnvironmentVariable("APPVEYOR_BUILD_VERSION") ?? "1.0.0";
+#addin "nuget:?package=Cake.FileHelpers&Version=3.3.0"
+
+var buildId = EnvironmentVariable("APPVEYOR_BUILD_VERSION") ?? "0";
+var buildVersion = EnvironmentVariable("IMPOSTOR_VERSION") ?? "1.0.0";
+var buildBranch = EnvironmentVariable("APPVEYOR_REPO_BRANCH") ?? "dev";
var buildDir = MakeAbsolute(Directory("./build"));
-var branch = EnvironmentVariable("APPVEYOR_REPO_BRANCH") ?? "dev";
var prNumber = EnvironmentVariable("APPVEYOR_PULL_REQUEST_NUMBER");
var target = Argument("target", "Deploy");
var configuration = Argument("configuration", "Release");
+// On any branch that is not master, we need to tag the version as prerelease.
+if (buildBranch != "master") {
+ buildVersion = buildVersion + "-ci." + buildId;
+}
+
//////////////////////////////////////////////////////////////////////
// UTILS
//////////////////////////////////////////////////////////////////////
public void ImpostorPublish(string name, string project, string runtime) {
- var projBuildDir = buildDir.Combine(name + "-" + runtime);
- var projBuildZip = buildDir.CombineWithFilePath(name + "-" + buildVersion + "-" + runtime + ".zip");
+ var projBuildDir = buildDir.Combine(name + "_" + runtime);
+ var projBuildZip = buildDir.CombineWithFilePath(name + "_" + buildVersion + "_" + runtime + ".zip");
DotNetCorePublish(project, new DotNetCorePublishSettings {
Configuration = configuration,
public void ImpostorPublishNF(string name, string project) {
var runtime = "win-x64";
- var projBuildDir = buildDir.Combine(name + "-" + runtime);
- var projBuildZip = buildDir.CombineWithFilePath(name + "-" + buildVersion + "-" + runtime + ".zip");
+ var projBuildDir = buildDir.Combine(name + "_" + runtime);
+ var projBuildZip = buildDir.CombineWithFilePath(name + "_" + buildVersion + "_" + runtime + ".zip");
DotNetCorePublish(project, new DotNetCorePublishSettings {
Configuration = configuration,
DotNetCoreRestore("./src/Impostor.Patcher/Impostor.Patcher.WinForms/Impostor.Patcher.WinForms.csproj");
});
+Task("Patch")
+ .WithCriteria(BuildSystem.AppVeyor.IsRunningOnAppVeyor)
+ .Does(() => {
+ ReplaceRegexInFiles("./src/**/*.csproj", @"<Version>.*?<\/Version>", "<Version>" + buildVersion + "</Version>");
+ ReplaceRegexInFiles("./src/**/*.props", @"<Version>.*?<\/Version>", "<Version>" + buildVersion + "</Version>");
+ });
+
Task("Build")
.IsDependentOn("Clean")
+ .IsDependentOn("Patch")
.IsDependentOn("Restore")
.Does(() => {
// Tests.
});
// Only build artifacts if;
- // - branch is master/dev
+ // - buildBranch is master/dev
// - it is not a pull request
- if ((branch == "master" || branch == "dev") && string.IsNullOrEmpty(prNumber)) {
+ if ((buildBranch == "master" || buildBranch == "dev") && string.IsNullOrEmpty(prNumber)) {
// Client.
ImpostorPublishNF("Impostor-Patcher", "./src/Impostor.Patcher/Impostor.Patcher.WinForms/Impostor.Patcher.WinForms.csproj");