From 2e82789e5db49f75feb733936ccb64f2ba77f330 Mon Sep 17 00:00:00 2001 From: Gary Ewan Park Date: Fri, 31 Mar 2017 20:08:26 +0100 Subject: [PATCH 01/10] (GH-8) Renamed AppVeyor file --- appveyor.yml => .appveyor.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename appveyor.yml => .appveyor.yml (100%) diff --git a/appveyor.yml b/.appveyor.yml similarity index 100% rename from appveyor.yml rename to .appveyor.yml From 484b4d56935fd28006d7d8d225c4610f2b35a0fc Mon Sep 17 00:00:00 2001 From: Gary Ewan Park Date: Fri, 31 Mar 2017 20:09:55 +0100 Subject: [PATCH 02/10] (GH-8) Added GRM Config file --- GitReleaseManager.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 GitReleaseManager.yaml diff --git a/GitReleaseManager.yaml b/GitReleaseManager.yaml new file mode 100644 index 0000000..7b7bf67 --- /dev/null +++ b/GitReleaseManager.yaml @@ -0,0 +1,12 @@ +issue-labels-include: +- Breaking change +- Feature +- Bug +- Improvement +- Documentation +issue-labels-exclude: +- Build +issue-labels-alias: + - name: Documentation + header: Documentation + plural: Documentation \ No newline at end of file From abe76bcd149e8f8dfde9265a72b54cd84f666ccd Mon Sep 17 00:00:00 2001 From: Gary Ewan Park Date: Fri, 31 Mar 2017 20:10:10 +0100 Subject: [PATCH 03/10] (GH-8) Removed GitVersion Config file --- GitVersionConfig.yaml | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 GitVersionConfig.yaml diff --git a/GitVersionConfig.yaml b/GitVersionConfig.yaml deleted file mode 100644 index 81cad7b..0000000 --- a/GitVersionConfig.yaml +++ /dev/null @@ -1,2 +0,0 @@ -mode: ContinuousDeployment -branches: {} From b805a881d4331e5ef8c093eebe6dc18d00594414 Mon Sep 17 00:00:00 2001 From: Gary Ewan Park Date: Fri, 31 Mar 2017 20:11:43 +0100 Subject: [PATCH 04/10] (GH-8) Added main Cake.Recipe files --- build.cake | 183 ----------------------------------------------------- build.ps1 | 59 ++++++++++++++--- setup.cake | 22 +++++++ 3 files changed, 71 insertions(+), 193 deletions(-) delete mode 100644 build.cake create mode 100644 setup.cake diff --git a/build.cake b/build.cake deleted file mode 100644 index ec19e9e..0000000 --- a/build.cake +++ /dev/null @@ -1,183 +0,0 @@ -#tool "xunit.runner.console" -#tool "GitVersion.CommandLine" - -////////////////////////////////////////////////////////////////////// -// ARGUMENTS -////////////////////////////////////////////////////////////////////// - -var target = Argument("target", "Default"); -var configuration = Argument("configuration", "Release"); - -////////////////////////////////////////////////////////////////////// -// PREPARATION -////////////////////////////////////////////////////////////////////// - -var solutionPath = MakeAbsolute(File(Argument("solutionPath", "Cake.Gulp.sln"))); -var projectName = Argument("projectName", "Cake.Gulp"); - -var artifacts = MakeAbsolute(Directory(Argument("artifactPath", "./artifacts"))); -var testResultsPath = MakeAbsolute(Directory(artifacts + "./test-results")); -var versionAssemblyInfo = MakeAbsolute(File(Argument("versionAssemblyInfo", "./VersionAssemblyInfo.cs"))); -var testAssemblies = new List { - MakeAbsolute(File("./src/Cake.Gulp.Tests/bin/" + configuration + "/Cake.Gulp.Tests.dll")) - }; - -SolutionParserResult solution = null; -SolutionProject project = null; -GitVersion versionInfo = null; - -////////////////////////////////////////////////////////////////////// -// TASKS -////////////////////////////////////////////////////////////////////// - -Setup(ctx => { - CreateDirectory(artifacts); - - if(!FileExists(solutionPath)) throw new Exception(string.Format("Solution file not found - {0}", solutionPath.ToString())); - solution = ParseSolution(solutionPath.ToString()); - project = solution.Projects.FirstOrDefault(x => x.Name == projectName); - if(project == null || !FileExists(project.Path)) throw new Exception(string.Format("Project not found in solution - {0}", projectName)); -}); - -Task("Clean") - .Does(() => -{ - CleanDirectory(artifacts); - var binDirs = GetDirectories(solutionPath.GetDirectory() +@"\src\**\bin"); - var objDirs = GetDirectories(solutionPath.GetDirectory() +@"\src\**\obj"); - CleanDirectories(binDirs); - CleanDirectories(objDirs); -}); - -Task("Restore-NuGet-Packages") - .IsDependentOn("Clean") - .Does(() => -{ - NuGetRestore(solutionPath, new NuGetRestoreSettings()); -}); - -Task("Update-Version-Info") - .IsDependentOn("CreateVersionAssemblyInfo") - .Does(() => -{ - versionInfo = GitVersion(new GitVersionSettings { - UpdateAssemblyInfo = true, - UpdateAssemblyInfoFilePath = versionAssemblyInfo - }); - - if(versionInfo != null) { - Information("Version: {0}", versionInfo.FullSemVer); - } else { - throw new Exception("Unable to determine version"); - } -}); - -Task("CreateVersionAssemblyInfo") - .WithCriteria(() => !FileExists(versionAssemblyInfo)) - .Does(() => -{ - Information("Creating version assembly info"); - CreateAssemblyInfo(versionAssemblyInfo, new AssemblyInfoSettings { - Version = "0.0.0.1", - FileVersion = "0.0.0.1", - InformationalVersion = "", - }); -}); - -Task("Build") - .IsDependentOn("Restore-NuGet-Packages") - .IsDependentOn("Update-Version-Info") - .Does(() => -{ - MSBuild(solutionPath, settings => settings - .WithProperty("TreatWarningsAsErrors","true") - .WithProperty("UseSharedCompilation", "false") - .WithProperty("AutoParameterizationWebConfigConnectionStrings", "false") - .SetVerbosity(Verbosity.Quiet) - .SetConfiguration(configuration) - .WithTarget("Rebuild") - ); -}); - -Task("Copy-Files") - .IsDependentOn("Build") - .Does(() => -{ - CreateDirectory(artifacts + "/build"); - var files = GetFiles(project.Path.GetDirectory() +"/bin/" +configuration +"/" +project.Name +".*"); - CopyFiles(files, artifacts +"/build"); -}); - -Task("Package") - .IsDependentOn("Clean") - .IsDependentOn("Restore-NuGet-Packages") - .IsDependentOn("Update-Version-Info") - .IsDependentOn("Copy-Files") - .Does(() => -{ - CreateDirectory(Directory(artifacts +"/packages")); - - var nuspec = project.Path.GetDirectory() +"/" +project.Name +".nuspec"; - Information("Packing: {0}", nuspec); - NuGetPack(nuspec, new NuGetPackSettings { - BasePath = artifacts +"/build", - NoPackageAnalysis = false, - Version = versionInfo.NuGetVersionV2, - OutputDirectory = Directory(artifacts +"/packages"), - Properties = new Dictionary() { { "Configuration", configuration } } - }); -}); - -Task("Run-Unit-Tests") - .IsDependentOn("Build") - .Does(() => -{ - CreateDirectory(testResultsPath); - - var settings = new XUnit2Settings { - XmlReportV1 = true, - NoAppDomain = true, - OutputDirectory = testResultsPath, - }; - settings.ExcludeTrait("Category", "Integration"); - - XUnit2(testAssemblies, settings); -}); - -Task("Update-AppVeyor-Build-Number") - .IsDependentOn("Update-Version-Info") - .WithCriteria(() => AppVeyor.IsRunningOnAppVeyor) - .Does(() => -{ - AppVeyor.UpdateBuildVersion(versionInfo.FullSemVer +" | " +AppVeyor.Environment.Build.Number); -}); - -Task("Upload-AppVeyor-Artifacts") - .IsDependentOn("Package") - .WithCriteria(() => AppVeyor.IsRunningOnAppVeyor) - .Does(() => -{ - foreach(var nupkg in GetFiles(artifacts +"/packages/*.nupkg")) { - AppVeyor.UploadArtifact(nupkg); - } -}); - -////////////////////////////////////////////////////////////////////// -// TASK TARGETS -////////////////////////////////////////////////////////////////////// - -Task("Default") - .IsDependentOn("Update-Version-Info") - .IsDependentOn("Update-AppVeyor-Build-Number") - .IsDependentOn("Build") - .IsDependentOn("Copy-Files") - .IsDependentOn("Run-Unit-Tests") - .IsDependentOn("Package") - .IsDependentOn("Upload-AppVeyor-Artifacts") - ; - -////////////////////////////////////////////////////////////////////// -// EXECUTION -////////////////////////////////////////////////////////////////////// - -RunTarget(target); diff --git a/build.ps1 b/build.ps1 index 619b53b..bdfb32b 100644 --- a/build.ps1 +++ b/build.ps1 @@ -5,14 +5,11 @@ ########################################################################## <# - .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 @@ -32,16 +29,15 @@ Tells Cake to use the Mono scripting engine. Skips restoring of packages. .PARAMETER ScriptArgs Remaining arguments are added here. - .LINK http://cakebuild.net - #> [CmdletBinding()] Param( - [string]$Script = "build.cake", + [string]$Script = "setup.cake", [string]$Target = "Default", + [ValidateSet("Release", "Debug")] [string]$Configuration = "Release", [ValidateSet("Quiet", "Minimal", "Normal", "Verbose", "Diagnostic")] [string]$Verbosity = "Verbose", @@ -54,14 +50,43 @@ Param( [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..." -$PSScriptRoot = split-path -parent $MyInvocation.MyCommand.Definition; +if(!$PSScriptRoot){ + $PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent +} + $TOOLS_DIR = Join-Path $PSScriptRoot "tools" $NUGET_EXE = Join-Path $TOOLS_DIR "nuget.exe" -$NUGET_URL = "http://dist.nuget.org/win-x86-commandline/latest/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 = ""; @@ -92,7 +117,7 @@ if ((Test-Path $PSScriptRoot) -and !(Test-Path $TOOLS_DIR)) { # Make sure that packages.config exist. if (!(Test-Path $PACKAGES_CONFIG)) { Write-Verbose -Message "Downloading packages.config..." - try { Invoke-WebRequest -Uri http://cakebuild.net/download/bootstrapper/packages -OutFile $PACKAGES_CONFIG } catch { + try { (New-Object System.Net.WebClient).DownloadFile("http://cakebuild.net/download/bootstrapper/packages", $PACKAGES_CONFIG) } catch { Throw "Could not download packages.config." } } @@ -125,11 +150,25 @@ $ENV:NUGET_EXE = $NUGET_EXE 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`"" + $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -PreRelease -OutputDirectory `"$TOOLS_DIR`" -Source https://www.myget.org/F/cake/api/v3/index.json" + 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 } diff --git a/setup.cake b/setup.cake new file mode 100644 index 0000000..4a7c7c6 --- /dev/null +++ b/setup.cake @@ -0,0 +1,22 @@ +#load nuget:https://www.myget.org/F/cake-contrib/api/v2?package=Cake.Recipe&prerelease + +Environment.SetVariableNames(); + +BuildParameters.SetParameters(context: Context, + buildSystem: BuildSystem, + sourceDirectoryPath: "./src", + title: "Cake.Grunt", + repositoryOwner: "cake-contrib", + repositoryName: "Cake.Grunt", + appVeyorAccountName: "cakecontrib"); + +BuildParameters.PrintParameters(Context); + +ToolSettings.SetToolSettings(context: Context, + dupFinderExcludePattern: new string[] { + BuildParameters.RootDirectoryPath + "/src/Cake.Grunt.Tests/*.cs" }, + testCoverageFilter: "+[*]* -[xunit.*]* -[Cake.Core]* -[Cake.Testing]* -[*.Tests]* ", + testCoverageExcludeByAttribute: "*.ExcludeFromCodeCoverage*", + testCoverageExcludeByFile: "*/*Designer.cs;*/*.g.cs;*/*.g.i.cs"); + +Build.Run(); From e1cfa7dda4e34de4fb750b21a2b55cc8f76bc9a4 Mon Sep 17 00:00:00 2001 From: Gary Ewan Park Date: Fri, 31 Mar 2017 20:12:53 +0100 Subject: [PATCH 05/10] (GH-8) Updated gitignore file --- .gitignore | 45 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 4d6e381..b1a3ec6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,7 @@ ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. - -# Cake -/Tools -VersionAssemblyInfo.* +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore # User-specific files *.suo @@ -44,9 +42,11 @@ TestResult.xml [Rr]eleasePS/ dlldata.c -# DNX +# .NET Core project.lock.json +project.fragment.lock.json artifacts/ +**/Properties/launchSettings.json *_i.c *_p.c @@ -84,6 +84,8 @@ ipch/ *.opensdf *.sdf *.cachefile +*.VC.db +*.VC.VC.opendb # Visual Studio profiler *.psess @@ -111,6 +113,10 @@ _TeamCity* # DotCover is a Code Coverage Tool *.dotCover +# Visual Studio code coverage results +*.coverage +*.coveragexml + # NCrunch _NCrunch_* .*crunch*.local.xml @@ -142,11 +148,16 @@ publish/ # Publish Web Output *.[Pp]ublish.xml *.azurePubxml -# TODO: Comment the next line if you want to checkin your web deploy settings +# TODO: Comment the next line if you want to checkin your web deploy settings # but database connection strings (with potential passwords) will be unencrypted *.pubxml *.publishproj +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + # NuGet Packages *.nupkg # The packages folder can be ignored because of Package Restore @@ -167,9 +178,6 @@ csx/ ecf/ rcf/ -# Microsoft Azure ApplicationInsights config file -ApplicationInsights.config - # Windows Store app package directories and files AppPackages/ BundleArtifacts/ @@ -188,12 +196,13 @@ ClientBin/ *~ *.dbmdl *.dbproj.schemaview +*.jfm *.pfx *.publishsettings node_modules/ orleans.codegen.cs -# Since there are multiple workflows, uncomment next line to ignore bower_components +# Since there are multiple workflows, uncomment next line to ignore bower_components # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) #bower_components/ @@ -232,6 +241,9 @@ FakesAssemblies/ # Visual Studio 6 workspace options file *.opt +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + # Visual Studio LightSwitch build output **/*.HTMLClient/GeneratedArtifacts **/*.DesktopClient/GeneratedArtifacts @@ -242,6 +254,7 @@ _Pvt_Extensions # Paket dependency manager .paket/paket.exe +paket-files/ # FAKE - F# Make .fake/ @@ -250,4 +263,14 @@ _Pvt_Extensions .idea/ *.sln.iml -/*.nupkg \ No newline at end of file +# CodeRush +.cr/ + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +tools/** +!tools/packages.config +BuildArtifacts/ \ No newline at end of file From 5196b240f7af5f1f77a4fc36ca20648e0a319102 Mon Sep 17 00:00:00 2001 From: Gary Ewan Park Date: Fri, 31 Mar 2017 20:28:58 +0100 Subject: [PATCH 06/10] (GH-8) Refactoring to get basic build to work --- .../nuget}/Cake.Gulp.nuspec | 11 +- setup.cake | 6 +- src/Cake.Gulp.Tests/Cake.Gulp.Tests.csproj | 192 +++++++++--------- .../Properties/AssemblyInfo.cs | 3 - Cake.Gulp.sln => src/Cake.Gulp.sln | 64 +++--- src/Cake.Gulp.sln.DotSettings | 9 + .../Cake.Gulp.v2.ncrunchsolution | Bin src/Cake.Gulp/Cake.Gulp.csproj | 147 +++++++------- src/Cake.Gulp/Properties/AssemblyInfo.cs | 3 - src/SolutionInfo.cs | 13 ++ tools/packages.config | 2 +- 11 files changed, 229 insertions(+), 221 deletions(-) rename {src/Cake.Gulp => nuspec/nuget}/Cake.Gulp.nuspec (59%) rename Cake.Gulp.sln => src/Cake.Gulp.sln (67%) create mode 100644 src/Cake.Gulp.sln.DotSettings rename Cake.Gulp.v2.ncrunchsolution => src/Cake.Gulp.v2.ncrunchsolution (100%) create mode 100644 src/SolutionInfo.cs diff --git a/src/Cake.Gulp/Cake.Gulp.nuspec b/nuspec/nuget/Cake.Gulp.nuspec similarity index 59% rename from src/Cake.Gulp/Cake.Gulp.nuspec rename to nuspec/nuget/Cake.Gulp.nuspec index a598457..a85cef9 100644 --- a/src/Cake.Gulp/Cake.Gulp.nuspec +++ b/nuspec/nuget/Cake.Gulp.nuspec @@ -4,9 +4,9 @@ Cake.Gulp Cake.Gulp Phil Oyston - Phil Oyston - https://github.com/Philo/cake-gulp/blob/master/LICENSE - https://github.com/Philo/cake-gulp + Phil Oyston, cake-contrib + https://github.com/cake-contrib/Cake.Gulp/blob/master/LICENSE + https://github.com/cake-contrib/Cake.Gulp https://raw.githubusercontent.com/cake-build/graphics/master/png/cake-medium.png false Adds Gulp helpers for Cake @@ -14,7 +14,8 @@ Cake Script Build Gulp - - + + + \ No newline at end of file diff --git a/setup.cake b/setup.cake index 4a7c7c6..24334dd 100644 --- a/setup.cake +++ b/setup.cake @@ -5,16 +5,16 @@ Environment.SetVariableNames(); BuildParameters.SetParameters(context: Context, buildSystem: BuildSystem, sourceDirectoryPath: "./src", - title: "Cake.Grunt", + title: "Cake.Gulp", repositoryOwner: "cake-contrib", - repositoryName: "Cake.Grunt", + repositoryName: "Cake.Gulp", appVeyorAccountName: "cakecontrib"); BuildParameters.PrintParameters(Context); ToolSettings.SetToolSettings(context: Context, dupFinderExcludePattern: new string[] { - BuildParameters.RootDirectoryPath + "/src/Cake.Grunt.Tests/*.cs" }, + BuildParameters.RootDirectoryPath + "/src/Cake.Gulp.Tests/*.cs" }, testCoverageFilter: "+[*]* -[xunit.*]* -[Cake.Core]* -[Cake.Testing]* -[*.Tests]* ", testCoverageExcludeByAttribute: "*.ExcludeFromCodeCoverage*", testCoverageExcludeByFile: "*/*Designer.cs;*/*.g.cs;*/*.g.i.cs"); diff --git a/src/Cake.Gulp.Tests/Cake.Gulp.Tests.csproj b/src/Cake.Gulp.Tests/Cake.Gulp.Tests.csproj index 71f0bda..64e579b 100644 --- a/src/Cake.Gulp.Tests/Cake.Gulp.Tests.csproj +++ b/src/Cake.Gulp.Tests/Cake.Gulp.Tests.csproj @@ -1,97 +1,97 @@ - - - - - Debug - AnyCPU - {B24B179E-E3C3-4DF2-90B2-98A7248DEA33} - Library - Properties - Cake.Gulp.Tests - Cake.Gulp.Tests - v4.5 - 512 - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - ..\..\packages\Cake.Core.0.17.0\lib\net45\Cake.Core.dll - True - - - ..\..\packages\Cake.Testing.0.17.1\lib\net45\Cake.Testing.dll - True - - - ..\..\packages\Shouldly.2.8.1\lib\net40\Shouldly.dll - True - - - - - - - - - - - ..\..\packages\xunit.abstractions.2.0.0\lib\portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS\xunit.abstractions.dll - - - ..\..\packages\xunit.extensibility.core.2.1.0\lib\dotnet\xunit.core.dll - - - ..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll - - - ..\..\packages\xunit.extensibility.execution.2.1.0\lib\dotnet\xunit.execution.dotnet.dll - - - ..\..\packages\xunit.extensibility.core.2.1.0\lib\dotnet\xunit.runner.utility.desktop.dll - - - - - Properties\VersionAssemblyInfo.cs - - - - - - - - - - {E10A12F5-7090-4E91-A1AA-F867BDA8A542} - Cake.Gulp - - - - - - - + + + + + Debug + AnyCPU + {B24B179E-E3C3-4DF2-90B2-98A7248DEA33} + Library + Properties + Cake.Gulp.Tests + Cake.Gulp.Tests + v4.5 + 512 + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\Cake.Core.0.17.0\lib\net45\Cake.Core.dll + True + + + ..\packages\Cake.Testing.0.17.1\lib\net45\Cake.Testing.dll + True + + + ..\packages\Shouldly.2.8.1\lib\net40\Shouldly.dll + True + + + + + + + + + + + ..\packages\xunit.abstractions.2.0.0\lib\portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS\xunit.abstractions.dll + + + ..\packages\xunit.extensibility.core.2.1.0\lib\dotnet\xunit.core.dll + + + ..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll + + + ..\packages\xunit.extensibility.execution.2.1.0\lib\dotnet\xunit.execution.dotnet.dll + + + ..\packages\xunit.extensibility.core.2.1.0\lib\dotnet\xunit.runner.utility.desktop.dll + + + + + Properties\SolutionInfo.cs + + + + + + + + + + {E10A12F5-7090-4E91-A1AA-F867BDA8A542} + Cake.Gulp + + + + + + + \ No newline at end of file diff --git a/src/Cake.Gulp.Tests/Properties/AssemblyInfo.cs b/src/Cake.Gulp.Tests/Properties/AssemblyInfo.cs index d6225bc..8f798c6 100644 --- a/src/Cake.Gulp.Tests/Properties/AssemblyInfo.cs +++ b/src/Cake.Gulp.Tests/Properties/AssemblyInfo.cs @@ -4,9 +4,6 @@ [assembly: AssemblyTitle("Cake.Gulp.Tests")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Cake.Gulp.Tests")] -[assembly: AssemblyCopyright("Copyright © 2016")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] diff --git a/Cake.Gulp.sln b/src/Cake.Gulp.sln similarity index 67% rename from Cake.Gulp.sln rename to src/Cake.Gulp.sln index 63bc6cf..4db1594 100644 --- a/Cake.Gulp.sln +++ b/src/Cake.Gulp.sln @@ -1,36 +1,28 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cake.Gulp", "src\Cake.Gulp\Cake.Gulp.csproj", "{E10A12F5-7090-4E91-A1AA-F867BDA8A542}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D0A71B1A-2E33-4A5B-A990-D1DE1997B6B7}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{9AC5E8C8-2ED1-403D-8140-2C536F07A8E1}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cake.Gulp.Tests", "src\Cake.Gulp.Tests\Cake.Gulp.Tests.csproj", "{B24B179E-E3C3-4DF2-90B2-98A7248DEA33}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E10A12F5-7090-4E91-A1AA-F867BDA8A542}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E10A12F5-7090-4E91-A1AA-F867BDA8A542}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E10A12F5-7090-4E91-A1AA-F867BDA8A542}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E10A12F5-7090-4E91-A1AA-F867BDA8A542}.Release|Any CPU.Build.0 = Release|Any CPU - {B24B179E-E3C3-4DF2-90B2-98A7248DEA33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B24B179E-E3C3-4DF2-90B2-98A7248DEA33}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B24B179E-E3C3-4DF2-90B2-98A7248DEA33}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B24B179E-E3C3-4DF2-90B2-98A7248DEA33}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {E10A12F5-7090-4E91-A1AA-F867BDA8A542} = {D0A71B1A-2E33-4A5B-A990-D1DE1997B6B7} - {B24B179E-E3C3-4DF2-90B2-98A7248DEA33} = {9AC5E8C8-2ED1-403D-8140-2C536F07A8E1} - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cake.Gulp", "Cake.Gulp\Cake.Gulp.csproj", "{E10A12F5-7090-4E91-A1AA-F867BDA8A542}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cake.Gulp.Tests", "Cake.Gulp.Tests\Cake.Gulp.Tests.csproj", "{B24B179E-E3C3-4DF2-90B2-98A7248DEA33}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E10A12F5-7090-4E91-A1AA-F867BDA8A542}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E10A12F5-7090-4E91-A1AA-F867BDA8A542}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E10A12F5-7090-4E91-A1AA-F867BDA8A542}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E10A12F5-7090-4E91-A1AA-F867BDA8A542}.Release|Any CPU.Build.0 = Release|Any CPU + {B24B179E-E3C3-4DF2-90B2-98A7248DEA33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B24B179E-E3C3-4DF2-90B2-98A7248DEA33}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B24B179E-E3C3-4DF2-90B2-98A7248DEA33}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B24B179E-E3C3-4DF2-90B2-98A7248DEA33}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/src/Cake.Gulp.sln.DotSettings b/src/Cake.Gulp.sln.DotSettings new file mode 100644 index 0000000..4ae7a73 --- /dev/null +++ b/src/Cake.Gulp.sln.DotSettings @@ -0,0 +1,9 @@ + + ExplicitlyExcluded + SOLUTION + DO_NOT_SHOW + DO_NOT_SHOW + DO_NOT_SHOW + DO_NOT_SHOW + DO_NOT_SHOW + DO_NOT_SHOW \ No newline at end of file diff --git a/Cake.Gulp.v2.ncrunchsolution b/src/Cake.Gulp.v2.ncrunchsolution similarity index 100% rename from Cake.Gulp.v2.ncrunchsolution rename to src/Cake.Gulp.v2.ncrunchsolution diff --git a/src/Cake.Gulp/Cake.Gulp.csproj b/src/Cake.Gulp/Cake.Gulp.csproj index 9872c05..9675c11 100644 --- a/src/Cake.Gulp/Cake.Gulp.csproj +++ b/src/Cake.Gulp/Cake.Gulp.csproj @@ -1,75 +1,74 @@ - - - - - Debug - AnyCPU - {E10A12F5-7090-4E91-A1AA-F867BDA8A542} - Library - Properties - Cake.Gulp - Cake.Gulp - v4.5 - 512 - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - bin\Debug\Cake.Gulp.XML - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - bin\Release\Cake.Gulp.XML - - - - ..\..\packages\Cake.Core.0.17.0\lib\net45\Cake.Core.dll - True - - - - - - - - - - - - - Properties\VersionAssemblyInfo.cs - - - - - - - - - - - - - - - - - + + + + + Debug + AnyCPU + {E10A12F5-7090-4E91-A1AA-F867BDA8A542} + Library + Properties + Cake.Gulp + Cake.Gulp + v4.5 + 512 + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + bin\Debug\Cake.Gulp.XML + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + bin\Release\Cake.Gulp.XML + + + + ..\packages\Cake.Core.0.17.0\lib\net45\Cake.Core.dll + True + + + + + + + + + + + + + Properties\SolutionInfo.cs + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Cake.Gulp/Properties/AssemblyInfo.cs b/src/Cake.Gulp/Properties/AssemblyInfo.cs index 282ef25..6752949 100644 --- a/src/Cake.Gulp/Properties/AssemblyInfo.cs +++ b/src/Cake.Gulp/Properties/AssemblyInfo.cs @@ -7,9 +7,6 @@ [assembly: AssemblyTitle("Cake.Gulp")] [assembly: AssemblyDescription("Provides a wrapper around Gulp functionality within a Cake build script")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Phil Oyston")] -[assembly: AssemblyProduct("Cake.Gulp")] -[assembly: AssemblyCopyright("Copyright © 2016")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] diff --git a/src/SolutionInfo.cs b/src/SolutionInfo.cs new file mode 100644 index 0000000..c65d528 --- /dev/null +++ b/src/SolutionInfo.cs @@ -0,0 +1,13 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by Cake. +// +//------------------------------------------------------------------------------ +using System.Reflection; + +[assembly: AssemblyCompany("Cake Contributions - Phil Oyston")] +[assembly: AssemblyProduct("Cake.Gulp")] +[assembly: AssemblyVersion("0.1.0")] +[assembly: AssemblyFileVersion("0.1.0")] +[assembly: AssemblyInformationalVersion("0.1.0")] +[assembly: AssemblyCopyright("Copyright © Cake Contributions 2017 - Present")] diff --git a/tools/packages.config b/tools/packages.config index 94fad2b..1f01695 100644 --- a/tools/packages.config +++ b/tools/packages.config @@ -1,4 +1,4 @@ - + From adbfbad917fa387b27bceed5ccd0765001f9349e Mon Sep 17 00:00:00 2001 From: Gary Ewan Park Date: Fri, 31 Mar 2017 20:29:30 +0100 Subject: [PATCH 07/10] (GH-8) Updated AppVeyor config file --- .appveyor.yml | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 503ff9b..afb3780 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -1,10 +1,26 @@ -version: '{build}' -os: Visual Studio 2015 -init: -- cmd: git config --global core.autocrlf true -cache: -- packages -> src\**\packages.config -- tools -> tools\packages.config +#---------------------------------# +# Build Script # +#---------------------------------# build_script: -- ps: .\build.ps1 -Target "Default" -Verbosity "Normal" -Configuration "Release" -test: off \ No newline at end of file + - ps: .\build.ps1 -Target AppVeyor + +# Tests +test: off + +#---------------------------------# +# Branches to build # +#---------------------------------# +branches: + # Whitelist + only: + - develop + - master + - /release/.*/ + - /hotfix/.*/ + +#---------------------------------# +# Build Cache # +#---------------------------------# +cache: +- Source\packages -> Source\**\packages.config +- tools -> setup.cake \ No newline at end of file From 2765aa920670ba1303955fab0eb7b949b3686d6b Mon Sep 17 00:00:00 2001 From: Gary Ewan Park Date: Fri, 31 Mar 2017 20:33:01 +0100 Subject: [PATCH 08/10] (GH-8) Corrected cache invalidation --- .appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.appveyor.yml b/.appveyor.yml index afb3780..52e5097 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -22,5 +22,5 @@ branches: # Build Cache # #---------------------------------# cache: -- Source\packages -> Source\**\packages.config +- src\packages -> src\**\packages.config - tools -> setup.cake \ No newline at end of file From e75440fb275b7cd1211b142020ff57742c33448e Mon Sep 17 00:00:00 2001 From: Gary Ewan Park Date: Fri, 31 Mar 2017 20:48:52 +0100 Subject: [PATCH 09/10] (GH-11) Added Wyam Documentation --- README.md | 52 +++++---- config.wyam | 1 + docs/input/assets/css/override.css | 20 ++++ docs/input/assets/images/clippy.svg | 3 + docs/input/assets/js/anchor.min.js | 6 ++ docs/input/assets/js/clipboard.min.js | 7 ++ docs/input/blog/new-release-0.1.0.md | 14 +++ docs/input/docs/index.cshtml | 19 ++++ docs/input/docs/usage/examples.md | 29 +++++ docs/input/docs/usage/index.cshtml | 7 ++ docs/input/index.cshtml | 34 ++++++ docs/packages.xml | 147 ++++++++++++++++++++++++++ 12 files changed, 316 insertions(+), 23 deletions(-) create mode 100644 config.wyam create mode 100644 docs/input/assets/css/override.css create mode 100644 docs/input/assets/images/clippy.svg create mode 100644 docs/input/assets/js/anchor.min.js create mode 100644 docs/input/assets/js/clipboard.min.js create mode 100644 docs/input/blog/new-release-0.1.0.md create mode 100644 docs/input/docs/index.cshtml create mode 100644 docs/input/docs/usage/examples.md create mode 100644 docs/input/docs/usage/index.cshtml create mode 100644 docs/input/index.cshtml create mode 100644 docs/packages.xml diff --git a/README.md b/README.md index b57d9e1..387a35a 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,42 @@ -# cake-gulp +# Cake.Gulp -## Usage +Cake.Gulp is a set of aliases for Cake to help with running Gulp scripts as part of a build. -```c# - #addin "Cake.Gulp" +[![License](http://img.shields.io/:license-mit-blue.svg)](http://cake-contrib.mit-license.org) - Task("Default") - .Does(() => - { - // Executes gulp from a global installation (npm install -g gulp) - Gulp.Global.Execute(); +## Information - // Executes gulp from a local installation (npm install gulp) - Gulp.Local.Execute(); - }); -``` +| | Stable | Pre-release | +|---|---|---| +|GitHub Release|-|[![GitHub release](https://img.shields.io/github/release/cake-contrib/Cake.Gulp.svg)](https://github.com/cake-contrib/Cake.Gulp/releases/latest)| +|NuGet|[![NuGet](https://img.shields.io/nuget/v/Cake.Gulp.svg)](https://www.nuget.org/packages/Cake.Gulp)|[![NuGet](https://img.shields.io/nuget/vpre/Cake.Gulp.svg)](https://www.nuget.org/packages/Cake.Gulp)| -## Scope +## Build Status -Cake.Gulp currently supports the following npm commands: +|Develop|Master| +|:--:|:--:| +|[![Build status](https://ci.appveyor.com/api/projects/status/0tbbj0v683qf39oo/branch/develop?svg=true)](https://ci.appveyor.com/project/cakecontrib/cake-gulp/branch/develop)|[![Build status](https://ci.appveyor.com/api/projects/status/0tbbj0v683qf39oo/branch/develop?svg=true)](https://ci.appveyor.com/project/cakecontrib/cake-gulp/branch/master)| -* Executing gulp from a local installation with arguments -* Executing gulp from a global installation with arguments +## Code Coverage -My primary goal for the project is to support the build workflow I need as a .NET developer. +[![Coverage Status](https://coveralls.io/repos/github/cake-contrib/Cake.Gulp/badge.svg?branch=develop)](https://coveralls.io/github/cake-contrib/Cake.Gulp?branch=develop) -Cake.Gulp will most likely be paired with [Cake.Npm](https://github.com/Philo/cake-npm) to support the installation of gulp itself along with any dependencies your gulp file requires. +## Quick Links -## Tests +- [Documentation](https://cake-contrib.github.io/Cake.Gulp) -Cake.Gulp is covered by a set of unit tests contributed by @nengberg +## Chat Room -## I cant do _ p { + margin-top: 0px; +} + +/* Control the look and feel of the copy box applied to code sections */ +.btn-copy[disabled] .clippy { + opacity: .3; +} +pre .btn-copy { + -webkit-transition: opacity 0.3s ease-in-out; + -o-transition: opacity 0.3s ease-in-out; + transition: opacity 0.3s ease-in-out; + opacity: 0; + padding: 2px 6px; + float: right; +} +pre:hover .btn-copy { + opacity: 1; +} \ No newline at end of file diff --git a/docs/input/assets/images/clippy.svg b/docs/input/assets/images/clippy.svg new file mode 100644 index 0000000..a72e2dd --- /dev/null +++ b/docs/input/assets/images/clippy.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/input/assets/js/anchor.min.js b/docs/input/assets/js/anchor.min.js new file mode 100644 index 0000000..16faf91 --- /dev/null +++ b/docs/input/assets/js/anchor.min.js @@ -0,0 +1,6 @@ +/** + * AnchorJS - v3.2.2 - 2016-10-05 + * https://github.com/bryanbraun/anchorjs + * Copyright (c) 2016 Bryan Braun; Licensed MIT + */ +!function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(this,function(){"use strict";function A(A){function e(A){A.icon=A.hasOwnProperty("icon")?A.icon:"",A.visible=A.hasOwnProperty("visible")?A.visible:"hover",A.placement=A.hasOwnProperty("placement")?A.placement:"right",A.class=A.hasOwnProperty("class")?A.class:"",A.truncate=A.hasOwnProperty("truncate")?Math.floor(A.truncate):64}function t(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new Error("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}function n(){if(null===document.head.querySelector("style.anchorjs")){var A,e=document.createElement("style"),t=" .anchorjs-link { opacity: 0; text-decoration: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }",n=" *:hover > .anchorjs-link, .anchorjs-link:focus { opacity: 1; }",i=' @font-face { font-family: "anchorjs-icons"; src: url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype"); }',o=" [data-anchorjs-icon]::after { content: attr(data-anchorjs-icon); }";e.className="anchorjs",e.appendChild(document.createTextNode("")),A=document.head.querySelector('[rel="stylesheet"], style'),void 0===A?document.head.appendChild(e):document.head.insertBefore(e,A),e.sheet.insertRule(t,e.sheet.cssRules.length),e.sheet.insertRule(n,e.sheet.cssRules.length),e.sheet.insertRule(o,e.sheet.cssRules.length),e.sheet.insertRule(i,e.sheet.cssRules.length)}}this.options=A||{},this.elements=[],e(this.options),this.isTouchDevice=function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)},this.add=function(A){var i,o,s,c,r,a,h,l,u,d,f,p,w=[];if(e(this.options),p=this.options.visible,"touch"===p&&(p=this.isTouchDevice()?"always":"hover"),A||(A="h1, h2, h3, h4, h5, h6"),i=t(A),0===i.length)return!1;for(n(),o=document.querySelectorAll("[id]"),s=[].map.call(o,function(A){return A.id}),r=0;r-1,t=A.lastChild&&(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ")>-1;return e||t||!1}}return A}); \ No newline at end of file diff --git a/docs/input/assets/js/clipboard.min.js b/docs/input/assets/js/clipboard.min.js new file mode 100644 index 0000000..2446ba6 --- /dev/null +++ b/docs/input/assets/js/clipboard.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v1.5.16 + * https://zenorocha.github.io/clipboard.js + * + * Licensed MIT © Zeno Rocha + */ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Clipboard=e()}}(function(){var e,t,n;return function e(t,n,i){function o(a,c){if(!n[a]){if(!t[a]){var l="function"==typeof require&&require;if(!c&&l)return l(a,!0);if(r)return r(a,!0);var s=new Error("Cannot find module '"+a+"'");throw s.code="MODULE_NOT_FOUND",s}var u=n[a]={exports:{}};t[a][0].call(u.exports,function(e){var n=t[a][1][e];return o(n?n:e)},u,u.exports,e,t,n,i)}return n[a].exports}for(var r="function"==typeof require&&require,a=0;a0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function e(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function e(){var t=this,n="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=document.body.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[n?"right":"left"]="-9999px";var i=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.addEventListener("focus",window.scrollTo(0,i)),this.fakeElem.style.top=i+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,document.body.appendChild(this.fakeElem),this.selectedText=(0,o.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function e(){this.fakeHandler&&(document.body.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(document.body.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function e(){this.selectedText=(0,o.default)(this.target),this.copyText()}},{key:"copyText",value:function e(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function e(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function e(){this.target&&this.target.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function e(){this.removeFake()}},{key:"action",set:function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function e(){return this._action}},{key:"target",set:function e(t){if(void 0!==t){if(!t||"object"!==("undefined"==typeof t?"undefined":r(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function e(){return this._target}}]),e}();e.exports=c})},{select:5}],8:[function(t,n,i){!function(o,r){if("function"==typeof e&&e.amd)e(["module","./clipboard-action","tiny-emitter","good-listener"],r);else if("undefined"!=typeof i)r(n,t("./clipboard-action"),t("tiny-emitter"),t("good-listener"));else{var a={exports:{}};r(a,o.clipboardAction,o.tinyEmitter,o.goodListener),o.clipboard=a.exports}}(this,function(e,t,n,i){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function c(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function l(e,t){var n="data-clipboard-"+e;if(t.hasAttribute(n))return t.getAttribute(n)}var s=o(t),u=o(n),f=o(i),d=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText}},{key:"listenClick",value:function e(t){var n=this;this.listener=(0,f.default)(t,"click",function(e){return n.onClick(e)})}},{key:"onClick",value:function e(t){var n=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new s.default({action:this.action(n),target:this.target(n),text:this.text(n),trigger:n,emitter:this})}},{key:"defaultAction",value:function e(t){return l("action",t)}},{key:"defaultTarget",value:function e(t){var n=l("target",t);if(n)return document.querySelector(n)}},{key:"defaultText",value:function e(t){return l("text",t)}},{key:"destroy",value:function e(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}]),t}(u.default);e.exports=h})},{"./clipboard-action":7,"good-listener":4,"tiny-emitter":6}]},{},[8])(8)}); \ No newline at end of file diff --git a/docs/input/blog/new-release-0.1.0.md b/docs/input/blog/new-release-0.1.0.md new file mode 100644 index 0000000..329f41a --- /dev/null +++ b/docs/input/blog/new-release-0.1.0.md @@ -0,0 +1,14 @@ +--- +Title: New Release - 0.7.0 +Published: 31/3/2017 +Category: Release +Author: gep13 +--- + +# 0.7.0 Release + +In this release, the following issues have been addressed: + + + +Please do not hesitate to reach out in the [Gitter Channel](https://gitter.im/cake-contrib/Lobby) if you have any issues using this addin. \ No newline at end of file diff --git a/docs/input/docs/index.cshtml b/docs/input/docs/index.cshtml new file mode 100644 index 0000000..c6d2c61 --- /dev/null +++ b/docs/input/docs/index.cshtml @@ -0,0 +1,19 @@ +--- +Title: Documentation +--- +

This user guide, like Cake.Gulp itself, is under very active development. Some parts of it aren't +documented as completely as they need to be, but we glady accept your contributions.

+ +

We need your help to improve the documentation for Cake.Gulp, so if there is something that you +would like to add then you can edit the content directly on GitHub.

+ +@foreach(IDocument child in Model.DocumentList(Keys.Children).OrderBy(x => x.Get(DocsKeys.Order, 1000))) +{ +

@(child.String(Keys.Title))

+ if(child.ContainsKey(DocsKeys.Description)) + { +

@Html.Raw(child.String(DocsKeys.Description))

+ } + + @Html.Partial("_ChildPages", child) +} \ No newline at end of file diff --git a/docs/input/docs/usage/examples.md b/docs/input/docs/usage/examples.md new file mode 100644 index 0000000..8151feb --- /dev/null +++ b/docs/input/docs/usage/examples.md @@ -0,0 +1,29 @@ +# Build Script + +You can reference Cake.Gulp in your build script as a cake addin: + +```cake +#addin "Cake.Gulp" +``` + +or nuget reference: + +```cake +#addin "nuget:https://www.nuget.org/api/v2?package=Cake.Gulp" +``` + +Then some examples: + +```c# + #addin "Cake.Gulp" + + Task("Default") + .Does(() => + { + // Executes gulp from a global installation (npm install -g gulp) + Gulp.Global.Execute(); + + // Executes gulp from a local installation (npm install gulp) + Gulp.Local.Execute(); + }); +``` \ No newline at end of file diff --git a/docs/input/docs/usage/index.cshtml b/docs/input/docs/usage/index.cshtml new file mode 100644 index 0000000..2c93fd0 --- /dev/null +++ b/docs/input/docs/usage/index.cshtml @@ -0,0 +1,7 @@ +--- +Order: 2 +Description: How to obtain, configure, and execute Cake.Gulp. +--- +

@Html.Raw(Model.String(DocsKeys.Description))

+ +@Html.Partial("_ChildPages") \ No newline at end of file diff --git a/docs/input/index.cshtml b/docs/input/index.cshtml new file mode 100644 index 0000000..490ca22 --- /dev/null +++ b/docs/input/index.cshtml @@ -0,0 +1,34 @@ +--- +Title: Cake.Gulp +NoSidebar: true +NoContainer: false +NoGutter: true +--- + +
+

What is it?

+

+ Cake.Gulp is a set of aliases for Cake to help with running Gulp scripts as part of a build. +

+ +

Scope

+

Cake.Gulp currently supports the following npm commands:

+ +
    +
  • Executing gulp from a local installation with arguments
  • +
  • Executing gulp from a global installation with arguments
  • +
+ +

+ My primary goal for the project is to support the build workflow I need as a .NET developer. +

+ +

+ Cake.Gulp will most likely be paired with Cake.Npm to support the installation of gulp itself along with any dependencies your gulp file requires. +

+ +

Tests

+

+ Cake.Gulp is covered by a set of unit tests contributed by nengberg. +

+
\ No newline at end of file diff --git a/docs/packages.xml b/docs/packages.xml new file mode 100644 index 0000000..920c336 --- /dev/null +++ b/docs/packages.xml @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 199ba0d1f072942df28420028a1a54de70113c0d Mon Sep 17 00:00:00 2001 From: Gary Ewan Park Date: Fri, 31 Mar 2017 20:49:52 +0100 Subject: [PATCH 10/10] (GH-11) Finished blog post --- docs/input/blog/new-release-0.1.0.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/input/blog/new-release-0.1.0.md b/docs/input/blog/new-release-0.1.0.md index 329f41a..6f486fd 100644 --- a/docs/input/blog/new-release-0.1.0.md +++ b/docs/input/blog/new-release-0.1.0.md @@ -9,6 +9,12 @@ Author: gep13 In this release, the following issues have been addressed: +__Improvement__ +- [__#8__](https://github.com/cake-contrib/Cake.Gulp/issues/8) Convert this repo to use Cake.Recipe + +__Documentation__ + +- [__#11__](https://github.com/cake-contrib/Cake.Gulp/issues/11) Add Wyam Documentation site Please do not hesitate to reach out in the [Gitter Channel](https://gitter.im/cake-contrib/Lobby) if you have any issues using this addin. \ No newline at end of file