diff --git a/build.cake b/build.cake
index 7d096754..ec49259f 100644
--- a/build.cake
+++ b/build.cake
@@ -7,20 +7,22 @@
// compile
var compileConfig = Argument("configuration", "Release");
-var projectJson = "./src/Ocelot/project.json";
+var slnFile = "./Ocelot.sln";
// build artifacts
var artifactsDir = Directory("artifacts");
// unit testing
var artifactsForUnitTestsDir = artifactsDir + Directory("UnitTests");
-var unitTestAssemblies = @"./test/Ocelot.UnitTests";
+var unitTestAssemblies = @"./test/Ocelot.UnitTests/Ocelot.UnitTests.csproj";
// acceptance testing
var artifactsForAcceptanceTestsDir = artifactsDir + Directory("AcceptanceTests");
+var acceptanceTestAssemblies = @"./test/Ocelot.AcceptanceTests/Ocelot.AcceptanceTests.csproj";
// integration testing
var artifactsForIntegrationTestsDir = artifactsDir + Directory("IntegrationTests");
+var integrationTestAssemblies = @"./test/Ocelot.IntegrationTests/Ocelot.IntegrationTests.csproj";
// benchmark testing
var artifactsForBenchmarkTestsDir = artifactsDir + Directory("BenchmarkTests");
@@ -81,13 +83,12 @@ Task("Version")
{
versioning = GetNuGetVersionForCommit();
var nugetVersion = versioning.NuGetVersion;
-
Information("SemVer version number: " + nugetVersion);
if (AppVeyor.IsRunningOnAppVeyor)
{
Information("Persisting version number...");
- PersistVersion(committedVersion, nugetVersion);
+ PersistVersion(nugetVersion);
buildVersion = nugetVersion;
}
else
@@ -101,102 +102,76 @@ Task("Restore")
.IsDependentOn("Version")
.Does(() =>
{
- DotNetCoreRestore("./src");
- DotNetCoreRestore("./test");
+ DotNetCoreRestore(slnFile);
+ });
+
+Task("Compile")
+ .IsDependentOn("Restore")
+ .Does(() =>
+ {
+ var settings = new DotNetCoreBuildSettings
+ {
+ Configuration = compileConfig,
+ };
+
+ DotNetCoreBuild(slnFile, settings);
});
Task("RunUnitTests")
- .IsDependentOn("Restore")
+ .IsDependentOn("Compile")
.Does(() =>
{
- var buildSettings = new DotNetCoreTestSettings
+ var settings = new DotNetCoreTestSettings
{
Configuration = compileConfig,
};
EnsureDirectoryExists(artifactsForUnitTestsDir);
- DotNetCoreTest(unitTestAssemblies, buildSettings);
+ DotNetCoreTest(unitTestAssemblies, settings);
});
Task("RunAcceptanceTests")
- .IsDependentOn("Restore")
+ .IsDependentOn("Compile")
.Does(() =>
{
- var buildSettings = new DotNetCoreTestSettings
- {
- Configuration = "Debug", //acceptance test config is hard-coded for debug
- };
-
- EnsureDirectoryExists(artifactsForAcceptanceTestsDir);
-
- DoInDirectory("test/Ocelot.AcceptanceTests", () =>
- {
- DotNetCoreTest(".", buildSettings);
- });
-
- });
-
- Task("RunIntegrationTests")
- .IsDependentOn("Restore")
- .Does(() =>
- {
- var buildSettings = new DotNetCoreTestSettings
- {
- Configuration = "Debug", //int test config is hard-coded for debug
- };
-
- EnsureDirectoryExists(artifactsForIntegrationTestsDir);
-
- DoInDirectory("test/Ocelot.IntegrationTests", () =>
- {
- DotNetCoreTest(".", buildSettings);
- });
-
- });
-
-Task("RunBenchmarkTests")
- .IsDependentOn("Restore")
- .Does(() =>
- {
- var buildSettings = new DotNetCoreRunSettings
+ var settings = new DotNetCoreTestSettings
{
Configuration = compileConfig,
};
- EnsureDirectoryExists(artifactsForBenchmarkTestsDir);
+ EnsureDirectoryExists(artifactsForAcceptanceTestsDir);
+ DotNetCoreTest(acceptanceTestAssemblies, settings);
+ });
- DoInDirectory(benchmarkTestAssemblies, () =>
+Task("RunIntegrationTests")
+ .IsDependentOn("Compile")
+ .Does(() =>
+ {
+ var settings = new DotNetCoreTestSettings
{
- DotNetCoreRun(".", "", buildSettings);
- });
+ Configuration = compileConfig,
+ };
+
+ EnsureDirectoryExists(artifactsForIntegrationTestsDir);
+ DotNetCoreTest(integrationTestAssemblies, settings);
});
Task("RunTests")
.IsDependentOn("RunUnitTests")
.IsDependentOn("RunAcceptanceTests")
- .IsDependentOn("RunIntegrationTests")
- .Does(() =>
- {
- });
+ .IsDependentOn("RunIntegrationTests");
Task("CreatePackages")
+ .IsDependentOn("Compile")
.Does(() =>
{
EnsureDirectoryExists(packagesDir);
-
- GenerateReleaseNotes(releaseNotesFile);
+ CopyFiles("./src/**/Ocelot.*.nupkg", packagesDir);
- var settings = new DotNetCorePackSettings
- {
- OutputDirectory = packagesDir,
- NoBuild = true
- };
-
- DotNetCorePack(projectJson, settings);
+ GenerateReleaseNotes();
System.IO.File.WriteAllLines(artifactsFile, new[]{
"nuget:Ocelot." + buildVersion + ".nupkg",
- "nugetSymbols:Ocelot." + buildVersion + ".symbols.nupkg",
"releaseNotes:releasenotes.md"
});
@@ -215,9 +190,9 @@ Task("ReleasePackagesToUnstableFeed")
.IsDependentOn("CreatePackages")
.Does(() =>
{
- if (ShouldPublishToUnstableFeed(nugetFeedUnstableBranchFilter, versioning.BranchName))
- {
- PublishPackages(packagesDir, artifactsFile, nugetFeedUnstableKey, nugetFeedUnstableUploadUrl, nugetFeedUnstableSymbolsUploadUrl);
+ if (ShouldPublishToUnstableFeed())
+ {
+ PublishPackages(nugetFeedUnstableKey, nugetFeedUnstableUploadUrl, nugetFeedUnstableSymbolsUploadUrl);
}
});
@@ -270,7 +245,7 @@ Task("ReleasePackagesToStableFeed")
.IsDependentOn("DownloadGitHubReleaseArtifacts")
.Does(() =>
{
- PublishPackages(packagesDir, artifactsFile, nugetFeedStableKey, nugetFeedStableUploadUrl, nugetFeedStableSymbolsUploadUrl);
+ PublishPackages(nugetFeedStableKey, nugetFeedStableUploadUrl, nugetFeedStableSymbolsUploadUrl);
});
Task("Release")
@@ -290,43 +265,37 @@ private GitVersion GetNuGetVersionForCommit()
}
/// Updates project version in all of our projects
-private void PersistVersion(string committedVersion, string newVersion)
+private void PersistVersion(string version)
{
- Information(string.Format("We'll search all project.json files for {0} and replace with {1}...", committedVersion, newVersion));
+ Information(string.Format("We'll search all csproj files for {0} and replace with {1}...", committedVersion, version));
- var projectJsonFiles = GetFiles("./**/project.json");
+ var projectFiles = GetFiles("./**/*.csproj");
- foreach(var projectJsonFile in projectJsonFiles)
+ foreach(var projectFile in projectFiles)
{
- var file = projectJsonFile.ToString();
+ var file = projectFile.ToString();
Information(string.Format("Updating {0}...", file));
- var updatedProjectJson = System.IO.File.ReadAllText(file)
- .Replace(committedVersion, newVersion);
+ var updatedProjectFile = System.IO.File.ReadAllText(file)
+ .Replace(committedVersion, version);
- System.IO.File.WriteAllText(file, updatedProjectJson);
+ System.IO.File.WriteAllText(file, updatedProjectFile);
}
}
/// generates release notes based on issues closed in GitHub since the last release
-private void GenerateReleaseNotes(ConvertableFilePath file)
+private void GenerateReleaseNotes()
{
- if (!IsRunningOnWindows())
- {
- Warning("We can't generate release notes as we're not running on Windows.");
- return;
- }
-
- Information("Generating release notes at " + file);
+ Information("Generating release notes at " + releaseNotesFile);
var releaseNotesExitCode = StartProcess(
@"tools/GitReleaseNotes/tools/gitreleasenotes.exe",
- new ProcessSettings { Arguments = ". /o " + file });
+ new ProcessSettings { Arguments = ". /o " + releaseNotesFile });
- if (string.IsNullOrEmpty(System.IO.File.ReadAllText(file)))
+ if (string.IsNullOrEmpty(System.IO.File.ReadAllText(releaseNotesFile)))
{
- System.IO.File.WriteAllText(file, "No issues closed since last release");
+ System.IO.File.WriteAllText(releaseNotesFile, "No issues closed since last release");
}
if (releaseNotesExitCode != 0)
@@ -336,7 +305,7 @@ private void GenerateReleaseNotes(ConvertableFilePath file)
}
/// Publishes code and symbols packages to nuget feed, based on contents of artifacts file
-private void PublishPackages(ConvertableDirectoryPath packagesDir, ConvertableFilePath artifactsFile, string feedApiKey, string codeFeedUrl, string symbolFeedUrl)
+private void PublishPackages(string feedApiKey, string codeFeedUrl, string symbolFeedUrl)
{
var artifacts = System.IO.File
.ReadAllLines(artifactsFile)
@@ -345,7 +314,6 @@ private void PublishPackages(ConvertableDirectoryPath packagesDir, ConvertableFi
var codePackage = packagesDir + File(artifacts["nuget"]);
- Information("Pushing package " + codePackage);
NuGetPush(
codePackage,
new NuGetPushSettings {
@@ -372,17 +340,17 @@ private string GetResource(string url)
}
}
-private bool ShouldPublishToUnstableFeed(string filter, string branchName)
+private bool ShouldPublishToUnstableFeed()
{
- var regex = new System.Text.RegularExpressions.Regex(filter);
- var publish = regex.IsMatch(branchName);
+ var regex = new System.Text.RegularExpressions.Regex(nugetFeedUnstableBranchFilter);
+ var publish = regex.IsMatch(versioning.BranchName);
if (publish)
{
- Information("Branch " + branchName + " will be published to the unstable feed");
+ Information("Branch " + versioning.BranchName + " will be published to the unstable feed");
}
else
{
- Information("Branch " + branchName + " will not be published to the unstable feed");
+ Information("Branch " + versioning.BranchName + " will not be published to the unstable feed");
}
return publish;
}
\ No newline at end of file
diff --git a/src/Ocelot/Ocelot.csproj b/src/Ocelot/Ocelot.csproj
index 008708d5..8fdb917d 100644
--- a/src/Ocelot/Ocelot.csproj
+++ b/src/Ocelot/Ocelot.csproj
@@ -5,15 +5,19 @@
Ocelot
0.0.0-dev
netcoreapp1.1
+ 1.6.1
Ocelot
Ocelot
API Gateway;.NET core
https://github.com/TomPallister/Ocelot
+ https://github.com/TomPallister/Ocelot
win10-x64;osx.10.11-x64;osx.10.12-x64;win7-x64
1.1.1
false
false
+ True
false
+ Tom Pallister