diff --git a/CAP.sln b/CAP.sln index 7e2fd25..d2c4723 100644 --- a/CAP.sln +++ b/CAP.sln @@ -9,6 +9,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{C09CDAB0-6 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{57A8A8E5-5715-41BF-A0A6-46B819933FBC}" ProjectSection(SolutionItems) = preProject + .flubu = .flubu .gitignore = .gitignore .travis.yml = .travis.yml appveyor.yml = appveyor.yml @@ -28,13 +29,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DotNetCore.CAP.RabbitMQ", " EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{10C0818D-9160-4B80-BB86-DDE925B64D43}" ProjectSection(SolutionItems) = preProject - build.cake = build.cake - build.ps1 = build.ps1 - build.sh = build.sh src\Directory.Build.props = src\Directory.Build.props - build\index.cake = build\index.cake - build\util.cake = build\util.cake - build\version.cake = build\version.cake build\version.props = build\version.props EndProjectSection EndProject diff --git a/build.cake b/build.cake deleted file mode 100644 index a355f8d..0000000 --- a/build.cake +++ /dev/null @@ -1,107 +0,0 @@ -#addin "nuget:https://www.nuget.org/api/v2?package=Newtonsoft.Json&version=9.0.1" - -#load "./build/index.cake" - -var target = Argument("target", "Default"); - -var build = BuildParameters.Create(Context); -var util = new Util(Context, build); - -Task("Clean") - .Does(() => -{ - if (DirectoryExists("./artifacts")) - { - DeleteDirectory("./artifacts", true); - } -}); - -Task("Restore") - .IsDependentOn("Clean") - .Does(() => -{ - var settings = new DotNetCoreRestoreSettings - { - ArgumentCustomization = args => - { - args.Append($"/p:VersionSuffix={build.Version.Suffix}"); - return args; - } - }; - DotNetCoreRestore(settings); -}); - -Task("Build") - .IsDependentOn("Restore") - .Does(() => -{ - var settings = new DotNetCoreBuildSettings - { - Configuration = build.Configuration, - VersionSuffix = build.Version.Suffix, - ArgumentCustomization = args => - { - args.Append($"/p:InformationalVersion={build.Version.VersionWithSuffix()}"); - return args; - } - }; - foreach (var project in build.ProjectFiles) - { - DotNetCoreBuild(project.FullPath, settings); - } -}); - -Task("Test") - .IsDependentOn("Build") - .Does(() => -{ - var settings = new DotNetCoreTestSettings - { - Configuration = build.Configuration, - NoBuild = false - }; - - foreach (var testProject in build.TestProjectFiles) - { - DotNetCoreTest(testProject.FullPath, settings); - } -}); - -Task("Pack") - .Does(() => -{ - var settings = new DotNetCorePackSettings - { - Configuration = build.Configuration, - VersionSuffix = build.Version.Suffix, - IncludeSymbols = true, - OutputDirectory = "./artifacts/packages" - }; - foreach (var project in build.ProjectFiles) - { - DotNetCorePack(project.FullPath, settings); - } -}); - -Task("Default") - .IsDependentOn("Build") - .IsDependentOn("Test") - .IsDependentOn("Pack") - .Does(() => -{ - util.PrintInfo(); -}); - -Task("Version") - .Does(() => -{ - Information($"{build.FullVersion()}"); -}); - -Task("Print") - .Does(() => -{ - util.PrintInfo(); -}); - -RunTarget(target); diff --git a/build.ps1 b/build.ps1 deleted file mode 100644 index 7526d9f..0000000 --- a/build.ps1 +++ /dev/null @@ -1,183 +0,0 @@ -<# - -.SYNOPSIS -This is a Powershell script to bootstrap a Cake build. - -.DESCRIPTION -This Powershell script will download NuGet if missing, restore NuGet tools (including Cake) -and execute your Cake build script with the parameters you provide. - -.PARAMETER Script -The build script to execute. -.PARAMETER Target -The build script target to run. -.PARAMETER Configuration -The build configuration to use. -.PARAMETER Verbosity -Specifies the amount of information to be displayed. -.PARAMETER Experimental -Tells Cake to use the latest Roslyn release. -.PARAMETER WhatIf -Performs a dry run of the build script. -No tasks will be executed. -.PARAMETER Mono -Tells Cake to use the Mono scripting engine. -.PARAMETER SkipToolPackageRestore -Skips restoring of packages. -.PARAMETER ScriptArgs -Remaining arguments are added here. - -.LINK -http://cakebuild.net - -#> - -[CmdletBinding()] -Param( - [string]$Script = "build.cake", - [string]$Target = "Default", - [ValidateSet("Release", "Debug")] - [string]$Configuration = "Debug", - [ValidateSet("Quiet", "Minimal", "Normal", "Verbose", "Diagnostic")] - [string]$Verbosity = "Normal", - [switch]$Experimental = $true, - [Alias("DryRun","Noop")] - [switch]$WhatIf, - [switch]$Mono, - [switch]$SkipToolPackageRestore, - [Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)] - [string[]]$ScriptArgs -) - -[Reflection.Assembly]::LoadWithPartialName("System.Security") | Out-Null -function MD5HashFile([string] $filePath) -{ - if ([string]::IsNullOrEmpty($filePath) -or !(Test-Path $filePath -PathType Leaf)) - { - return $null - } - - [System.IO.Stream] $file = $null; - [System.Security.Cryptography.MD5] $md5 = $null; - try - { - $md5 = [System.Security.Cryptography.MD5]::Create() - $file = [System.IO.File]::OpenRead($filePath) - return [System.BitConverter]::ToString($md5.ComputeHash($file)) - } - finally - { - if ($file -ne $null) - { - $file.Dispose() - } - } -} - -Write-Host "Preparing to run build script..." - -if(!$PSScriptRoot){ - $PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent -} - -$TOOLS_DIR = Join-Path $PSScriptRoot "tools" -$NUGET_EXE = Join-Path $TOOLS_DIR "nuget.exe" -$CAKE_EXE = Join-Path $TOOLS_DIR "Cake/Cake.exe" -$NUGET_URL = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe" -$PACKAGES_CONFIG = Join-Path $TOOLS_DIR "packages.config" -$PACKAGES_CONFIG_MD5 = Join-Path $TOOLS_DIR "packages.config.md5sum" - -# Should we use mono? -$UseMono = ""; -if($Mono.IsPresent) { - Write-Verbose -Message "Using the Mono based scripting engine." - $UseMono = "-mono" -} - -# Should we use the new Roslyn? -$UseExperimental = ""; -if($Experimental.IsPresent -and !($Mono.IsPresent)) { - Write-Verbose -Message "Using experimental version of Roslyn." - $UseExperimental = "-experimental" -} - -# Is this a dry run? -$UseDryRun = ""; -if($WhatIf.IsPresent) { - $UseDryRun = "-dryrun" -} - -# Make sure tools folder exists -if ((Test-Path $PSScriptRoot) -and !(Test-Path $TOOLS_DIR)) { - Write-Verbose -Message "Creating tools directory..." - New-Item -Path $TOOLS_DIR -Type directory | out-null -} - -# Make sure that packages.config exist. -if (!(Test-Path $PACKAGES_CONFIG)) { - Write-Verbose -Message "Downloading packages.config..." - try { (New-Object System.Net.WebClient).DownloadFile("http://cakebuild.net/download/bootstrapper/packages", $PACKAGES_CONFIG) } catch { - Throw "Could not download packages.config." - } -} - -# Try find NuGet.exe in path if not exists -if (!(Test-Path $NUGET_EXE)) { - Write-Verbose -Message "Trying to find nuget.exe in PATH..." - $existingPaths = $Env:Path -Split ';' | Where-Object { (![string]::IsNullOrEmpty($_)) -and (Test-Path $_) } - $NUGET_EXE_IN_PATH = Get-ChildItem -Path $existingPaths -Filter "nuget.exe" | Select -First 1 - if ($NUGET_EXE_IN_PATH -ne $null -and (Test-Path $NUGET_EXE_IN_PATH.FullName)) { - Write-Verbose -Message "Found in PATH at $($NUGET_EXE_IN_PATH.FullName)." - $NUGET_EXE = $NUGET_EXE_IN_PATH.FullName - } -} - -# Try download NuGet.exe if not exists -if (!(Test-Path $NUGET_EXE)) { - Write-Verbose -Message "Downloading NuGet.exe..." - try { - (New-Object System.Net.WebClient).DownloadFile($NUGET_URL, $NUGET_EXE) - } catch { - Throw "Could not download NuGet.exe." - } -} - -# Save nuget.exe path to environment to be available to child processed -$ENV:NUGET_EXE = $NUGET_EXE - -# Restore tools from NuGet? -if(-Not $SkipToolPackageRestore.IsPresent) { - Push-Location - Set-Location $TOOLS_DIR - - # Check for changes in packages.config and remove installed tools if true. - [string] $md5Hash = MD5HashFile($PACKAGES_CONFIG) - if((!(Test-Path $PACKAGES_CONFIG_MD5)) -Or - ($md5Hash -ne (Get-Content $PACKAGES_CONFIG_MD5 ))) { - Write-Verbose -Message "Missing or changed package.config hash..." - Remove-Item * -Recurse -Exclude packages.config,nuget.exe - } - - Write-Verbose -Message "Restoring tools from NuGet..." - $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$TOOLS_DIR`"" - - if ($LASTEXITCODE -ne 0) { - Throw "An error occured while restoring NuGet tools." - } - else - { - $md5Hash | Out-File $PACKAGES_CONFIG_MD5 -Encoding "ASCII" - } - Write-Verbose -Message ($NuGetOutput | out-string) - Pop-Location -} - -# Make sure that Cake has been installed. -if (!(Test-Path $CAKE_EXE)) { - Throw "Could not find Cake.exe at $CAKE_EXE" -} - -# Start Cake -Write-Host "Running build script..." -Invoke-Expression "& `"$CAKE_EXE`" `"$Script`" -target=`"$Target`" -configuration=`"$Configuration`" -verbosity=`"$Verbosity`" $UseMono $UseDryRun $UseExperimental $ScriptArgs" -exit $LASTEXITCODE diff --git a/build.sh b/build.sh deleted file mode 100644 index 4034242..0000000 --- a/build.sh +++ /dev/null @@ -1,3 +0,0 @@ -dotnet --info -dotnet restore -dotnet test test/DotNetCore.CAP.Test/DotNetCore.CAP.Test.csproj -f netcoreapp2.2 \ No newline at end of file diff --git a/build/index.cake b/build/index.cake deleted file mode 100644 index f0684bf..0000000 --- a/build/index.cake +++ /dev/null @@ -1,2 +0,0 @@ -#load "./util.cake" -#load "./version.cake" diff --git a/build/util.cake b/build/util.cake deleted file mode 100644 index db42eb7..0000000 --- a/build/util.cake +++ /dev/null @@ -1,25 +0,0 @@ -public class Util -{ - public Util(ICakeContext context, BuildParameters build) - { - Context = context; - Build = build; - } - - public ICakeContext Context { get; set; } - public BuildParameters Build { get; set; } - - public void PrintInfo() - { - Context.Information($@" -Version: {Build.FullVersion()} -Configuration: {Build.Configuration} -"); - } - - public static string CreateStamp() - { - var seconds = (long)(DateTime.UtcNow - new DateTime(2017, 1, 1)).TotalSeconds; - return seconds.ToString(); - } -} diff --git a/build/version.cake b/build/version.cake deleted file mode 100644 index e1069fc..0000000 --- a/build/version.cake +++ /dev/null @@ -1,120 +0,0 @@ -using System.Xml; - -public class BuildParameters -{ - public BuildParameters(ICakeContext context) - { - Context = context; - } - - public ICakeContext Context { get; } - public BuildVersion Version { get; private set; } - public string Configuration { get; private set; } - public bool IsTagged { get; private set; } - public bool IsCI { get; private set; } - public DirectoryPathCollection Projects { get; set; } - public DirectoryPathCollection TestProjects { get; set; } - public FilePathCollection ProjectFiles { get; set; } - public FilePathCollection TestProjectFiles { get; set; } - - public static BuildParameters Create(ICakeContext context) - { - var buildParameters = new BuildParameters(context); - buildParameters.Initialize(); - return buildParameters; - } - - public string FullVersion() - { - return Version.VersionWithSuffix(); - } - - private void Initialize() - { - InitializeCore(); - InitializeVersion(); - } - - private void InitializeCore() - { - Projects = Context.GetDirectories("./src/*"); - TestProjects = Context.GetDirectories("./test/*"); - ProjectFiles = Context.GetFiles("./src/*/*.csproj"); - TestProjectFiles = Context.GetFiles("./test/*/*.csproj"); - - var buildSystem = Context.BuildSystem(); - if (!buildSystem.IsLocalBuild) - { - IsCI = true; - if ((buildSystem.IsRunningOnAppVeyor && buildSystem.AppVeyor.Environment.Repository.Tag.IsTag) || - (buildSystem.IsRunningOnTravisCI && string.IsNullOrWhiteSpace(buildSystem.TravisCI.Environment.Build.Tag))) - { - IsTagged = true; - } - } - - Configuration = Context.Argument("Configuration", "Debug"); - if (IsCI) - { - Configuration = "Release"; - } - } - - private void InitializeVersion() - { - var versionFile = Context.File("./build/version.props"); - var content = System.IO.File.ReadAllText(versionFile.Path.FullPath); - - XmlDocument doc = new XmlDocument(); - doc.LoadXml(content); - - var versionMajor = doc.DocumentElement.SelectSingleNode("/Project/PropertyGroup/VersionMajor").InnerText; - var versionMinor = doc.DocumentElement.SelectSingleNode("/Project/PropertyGroup/VersionMinor").InnerText; - var versionPatch = doc.DocumentElement.SelectSingleNode("/Project/PropertyGroup/VersionPatch").InnerText; - var versionQuality = doc.DocumentElement.SelectSingleNode("/Project/PropertyGroup/VersionQuality").InnerText; - versionQuality = string.IsNullOrWhiteSpace(versionQuality) ? null : versionQuality; - - var suffix = versionQuality; - if (!IsTagged) - { - suffix += (IsCI ? "preview-" : "dv-") + Util.CreateStamp(); - } - suffix = string.IsNullOrWhiteSpace(suffix) ? null : suffix; - - Version = - new BuildVersion(int.Parse(versionMajor), int.Parse(versionMinor), int.Parse(versionPatch), versionQuality); - Version.Suffix = suffix; - } -} - -public class BuildVersion -{ - public BuildVersion(int major, int minor, int patch, string quality) - { - Major = major; - Minor = minor; - Patch = patch; - Quality = quality; - } - - public int Major { get; set; } - public int Minor { get; set; } - public int Patch { get; set; } - public string Quality { get; set; } - public string Suffix { get; set; } - - public string VersionWithoutQuality() - { - return $"{Major}.{Minor}.{Patch}"; - } - - public string Version() - { - return VersionWithoutQuality() + (Quality == null ? string.Empty : $"-{Quality}"); - } - - public string VersionWithSuffix() - { - return Version() + (Suffix == null ? string.Empty : $"-{Suffix}"); - } -}