diff --git a/build/Build.bat b/build/Build.bat deleted file mode 100644 index f26c4877cd..0000000000 --- a/build/Build.bat +++ /dev/null @@ -1,217 +0,0 @@ -@ECHO OFF - -:: UMBRACO BUILD FILE - - -:: ensure we have UmbracoVersion.txt -IF NOT EXIST UmbracoVersion.txt ( - ECHO UmbracoVersion.txt is missing! - GOTO error -) - -REM Get the version and comment from UmbracoVersion.txt lines 2 and 3 -SET RELEASE= -SET COMMENT= -FOR /F "skip=1 delims=" %%i IN (UmbracoVersion.txt) DO IF NOT DEFINED RELEASE SET RELEASE=%%i -FOR /F "skip=2 delims=" %%i IN (UmbracoVersion.txt) DO IF NOT DEFINED COMMENT SET COMMENT=%%i - -REM process args - -SET INTEGRATION=0 -SET nuGetFolder=%CD%\..\src\packages -SET SKIPNUGET=0 - -:processArgs - -:: grab the first parameter as a whole eg "/action:start" -:: end if no more parameter -SET SWITCHPARSE=%1 -IF [%SWITCHPARSE%] == [] goto endProcessArgs - -:: get switch and value -SET SWITCH= -SET VALUE= -FOR /F "tokens=1,* delims=: " %%a IN ("%SWITCHPARSE%") DO SET SWITCH=%%a& SET VALUE=%%b - -:: route arg -IF '%SWITCH%'=='/release' GOTO argRelease -IF '%SWITCH%'=='-release' GOTO argRelease -IF '%SWITCH%'=='/comment' GOTO argComment -IF '%SWITCH%'=='-comment' GOTO argComment -IF '%SWITCH%'=='/integration' GOTO argIntegration -IF '%SWITCH%'=='-integration' GOTO argIntegration -IF '%SWITCH%'=='/nugetfolder' GOTO argNugetFolder -IF '%SWITCH%'=='-nugetfolder' GOTO argNugetFolder -IF '%SWITCH%'=='/skipnuget' GOTO argSkipNuget -IF '%SWITCH%'=='-skipnuget' GOTO argSkipNuget -ECHO "Invalid switch %SWITCH%" -GOTO error - -:: handle each arg - -:argRelease -set RELEASE=%VALUE% -SHIFT -goto processArgs - -:argComment -SET COMMENT=%VALUE% -SHIFT -GOTO processArgs - -:argIntegration -SET INTEGRATION=1 -SHIFT -GOTO processArgs - -:argNugetFolder -SET nuGetFolder=%VALUE% -SHIFT -GOTO processArgs - -:argSkipNuget -SET SKIPNUGET=1 -SHIFT -GOTO processArgs - -:endProcessArgs - -REM run - -SET VERSION=%RELEASE% -IF [%COMMENT%] EQU [] (SET VERSION=%RELEASE%) ELSE (SET VERSION=%RELEASE%-%COMMENT%) - -ECHO ################################################################ -ECHO Building Umbraco %VERSION% -ECHO ################################################################ - -SET MSBUILDPATH=C:\Program Files (x86)\MSBuild\14.0\Bin -SET MSBUILD="%MSBUILDPATH%\MsBuild.exe" -SET PATH="%MSBUILDPATH%";%PATH% - -ReplaceIISExpressPortNumber.exe ..\src\Umbraco.Web.UI\Umbraco.Web.UI.csproj %RELEASE% - -ECHO. -ECHO Removing the belle build folder and bower_components folder to make sure everything is clean as a whistle -RD ..\src\Umbraco.Web.UI.Client\build /Q /S -RD ..\src\Umbraco.Web.UI.Client\bower_components /Q /S - -ECHO. -ECHO Removing existing built files to make sure everything is clean as a whistle -RMDIR /Q /S _BuildOutput -DEL /F /Q UmbracoCms.*.zip 2>NUL -DEL /F /Q UmbracoExamine.*.zip 2>NUL -DEL /F /Q UmbracoCms.*.nupkg 2>NUL -DEL /F /Q webpihash.txt 2>NUL - -ECHO. -ECHO Making sure Git is in the path so that the build can succeed -CALL InstallGit.cmd - -REM Adding the default Git path so that if it's installed it can actually be found -REM This is necessary because SETLOCAL is on in InstallGit.cmd so that one might find Git, -REM but the path setting is lost due to SETLOCAL -SET PATH="C:\Program Files (x86)\Git\cmd";"C:\Program Files\Git\cmd";%PATH% - -SET toolsFolder=%CD%\tools\ -IF NOT EXIST "%toolsFolder%" ( - MD tools -) - -SET nuGetExecutable=%CD%\tools\nuget.exe -IF NOT EXIST "%nuGetExecutable%" ( - ECHO Getting NuGet so we can fetch some tools - ECHO Downloading https://dist.nuget.org/win-x86-commandline/latest/nuget.exe to %nuGetExecutable% - powershell -Command "(New-Object Net.WebClient).DownloadFile('https://dist.nuget.org/win-x86-commandline/latest/nuget.exe', '%nuGetExecutable%')" -) - -:: We need 7za.exe for BuildBelle.bat -IF NOT EXIST "%toolsFolder%7za.exe" ( - ECHO 7zip not found - fetching now - "%nuGetExecutable%" install 7-Zip.CommandLine -OutputDirectory tools -Verbosity quiet -) - -:: We need vswhere.exe for VS2017+ -IF NOT EXIST "%toolsFolder%vswhere.exe" ( - ECHO vswhere not found - fetching now - "%nuGetExecutable%" install vswhere -OutputDirectory tools -Verbosity quiet -) - -:: Put 7za.exe and vswhere.exe in a predictable path (not version specific) -FOR /f "delims=" %%A in ('dir "%toolsFolder%7-Zip.CommandLine.*" /b') DO SET "sevenZipExePath=%toolsFolder%%%A\" -MOVE "%sevenZipExePath%tools\7za.exe" "%toolsFolder%7za.exe" - -FOR /f "delims=" %%A in ('dir "%toolsFolder%vswhere.*" /b') DO SET "vswhereExePath=%toolsFolder%%%A\" -MOVE "%vswhereExePath%tools\vswhere.exe" "%toolsFolder%vswhere.exe" - -ECHO. -ECHO Making sure we have a web.config -IF NOT EXIST "%CD%\..\src\Umbraco.Web.UI\web.config" COPY "%CD%\..\src\Umbraco.Web.UI\web.Template.config" "%CD%\..\src\Umbraco.Web.UI\web.config" - -for /f "usebackq tokens=1* delims=: " %%i in (`"%CD%\tools\vswhere.exe" -latest -requires Microsoft.Component.MSBuild`) do ( - if /i "%%i"=="installationPath" set InstallDir=%%j -) - -SET VSWherePath="%InstallDir%\MSBuild" - -ECHO. -ECHO Visual Studio is installed in: %InstallDir% - -SET MSBUILDPATH=C:\Program Files (x86)\MSBuild\14.0\Bin -SET MSBUILD="%MSBUILDPATH%\MsBuild.exe" - -ECHO. -ECHO Reporting NuGet version -"%nuGetExecutable%" help | findstr "^NuGet Version:" - -ECHO. -ECHO Restoring NuGet packages -ECHO Into %nuGetFolder% -"%nuGetExecutable%" restore "%CD%\..\src\umbraco.sln" -Verbosity Quiet -NonInteractive -PackagesDirectory "%nuGetFolder%" -IF ERRORLEVEL 1 GOTO :error - -ECHO. -ECHO. -ECHO Performing MSBuild and producing Umbraco binaries zip files -ECHO This takes a few minutes and logging is set to report warnings -ECHO and errors only so it might seems like nothing is happening for a while. -ECHO You can check the msbuild.log file for progress. -ECHO. -%MSBUILD% "Build.proj" /p:BUILD_RELEASE=%RELEASE% /p:BUILD_COMMENT=%COMMENT% /p:NugetPackagesDirectory="%nuGetFolder%" /p:VSWherePath=%VSWherePath% /consoleloggerparameters:Summary;ErrorsOnly /fileLogger -IF ERRORLEVEL 1 GOTO error - -ECHO. -ECHO Setting node_modules folder to hidden to prevent VS13 from crashing on it while loading the websites project -attrib +h ..\src\Umbraco.Web.UI.Client\node_modules - -IF %SKIPNUGET% EQU 1 GOTO success - -ECHO. -ECHO Adding Web.config transform files to the NuGet package -REN .\_BuildOutput\WebApp\Views\Web.config Web.config.transform -REN .\_BuildOutput\WebApp\Xslt\Web.config Web.config.transform - -ECHO. -ECHO Packing the NuGet release files -..\src\.nuget\NuGet.exe Pack NuSpecs\UmbracoCms.Core.nuspec -Version %VERSION% -Symbols -Verbosity quiet -..\src\.nuget\NuGet.exe Pack NuSpecs\UmbracoCms.nuspec -Version %VERSION% -Verbosity quiet -IF ERRORLEVEL 1 GOTO error - -:success -ECHO. -ECHO No errors were detected! -ECHO There may still be some in the output, which you would need to investigate. -ECHO Warnings are usually normal. -ECHO. -ECHO. -GOTO :EOF - -:error - -ECHO. -ECHO Errors were detected! -ECHO. - -REM don't pause if continuous integration else the build server waits forever -REM before cancelling the build (and, there is noone to read the output anyways) -IF %INTEGRATION% NEQ 1 PAUSE diff --git a/build/Build.proj b/build/Build.proj deleted file mode 100644 index 1f57ca5915..0000000000 --- a/build/Build.proj +++ /dev/null @@ -1,345 +0,0 @@ - - - - - - ..\MSBuildCommunityTasks - ..\UmbracoMSBuildTasks - - - - - - - - - - - - - - - - b.ToString("x2")))); - } - } - } - } - } - ]]> - - - - - - - - - - .$(BUILD_NUMBER) - - - .$(BUILD_RELEASE) - - - .$(BUILD_RELEASE)-$(BUILD_COMMENT) - - - .$(BUILD_RELEASE)-$(BUILD_NIGHTLY) - - - .$(BUILD_RELEASE)-$(BUILD_COMMENT)-$(BUILD_NIGHTLY) - - - - Release - _BuildOutput\ - UmbracoCms$(DECIMAL_BUILD_NUMBER).zip - UmbracoCms.AllBinaries$(DECIMAL_BUILD_NUMBER).zip - UmbracoCms.WebPI$(DECIMAL_BUILD_NUMBER).zip - False - ..\..\build\$(BuildFolder) - $(MSBuildProjectDirectory)\$(BuildFolder) - $(BuildFolder)bin\ - $(BuildFolder)WebApp\ - $(BuildFolder)WebPi\ - $(BuildFolder)Configs\ - $(BuildFolderRelativeToProjects)bin\ - $(BuildFolderAbsolutePath)bin\ - $(BuildFolderRelativeToProjects)WebApp\ - $(BuildFolderAbsolutePath)WebApp\ - $(BuildFolderRelativeToProjects)WebPi\ - $(BuildFolderAbsolutePath)WebPi\ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $(BUILD_RELEASE) - $(BUILD_RELEASE)-$(BUILD_COMMENT) - $(BUILD_RELEASE)-$(BUILD_NIGHTLY) - $(BUILD_RELEASE)-$(BUILD_COMMENT)-$(BUILD_NIGHTLY) - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/build/BuildBelle.bat b/build/BuildBelle.bat deleted file mode 100644 index 78b7736c2b..0000000000 --- a/build/BuildBelle.bat +++ /dev/null @@ -1,59 +0,0 @@ -@ECHO OFF -SETLOCAL - :: SETLOCAL is on, so changes to the path not persist to the actual user's path - -SET toolsFolder=%CD%\tools\ -ECHO Current folder: %CD% - -SET nodeFileName=node-v6.9.1-win-x86.7z -SET nodeExtractFolder=%toolsFolder%node.js.691 - -IF NOT EXIST "%nodeExtractFolder%" ( - ECHO Downloading http://nodejs.org/dist/v6.9.1/%nodeFileName% to %toolsFolder%%nodeFileName% - powershell -Command "(New-Object Net.WebClient).DownloadFile('http://nodejs.org/dist/v6.9.1/%nodeFileName%', '%toolsFolder%%nodeFileName%')" - ECHO Extracting %nodeFileName% to %nodeExtractFolder% - "%toolsFolder%\7za.exe" x "%toolsFolder%\%nodeFileName%" -o"%nodeExtractFolder%" -aos > nul -) -FOR /f "delims=" %%A in ('dir "%nodeExtractFolder%\node*" /b') DO SET "nodePath=%nodeExtractFolder%\%%A" - - -SET nuGetExecutable=%CD%\tools\nuget.exe -IF NOT EXIST "%nuGetExecutable%" ( - ECHO Downloading https://dist.nuget.org/win-x86-commandline/latest/nuget.exe to %nuGetExecutable% - powershell -Command "(New-Object Net.WebClient).DownloadFile('https://dist.nuget.org/win-x86-commandline/latest/nuget.exe', '%nuGetExecutable%')" -) - -SET drive=%CD:~0,2% -SET nuGetFolder=%drive%\packages\ -FOR /f "delims=" %%A in ('dir "%nuGetFolder%npm.*" /b') DO SET "npmPath=%nuGetFolder%%%A\" - -IF [%npmPath%] == [] GOTO :installnpm -IF NOT [%npmPath%] == [] GOTO :build - -:installnpm - ECHO Downloading npm - ECHO Configured packages folder: %nuGetFolder% - ECHO Installing Npm NuGet Package - "%nuGetExecutable%" install Npm -OutputDirectory %nuGetFolder% -Verbosity detailed - REM Ensures that we look for the just downloaded NPM, not whatever the user has installed on their machine - FOR /f "delims=" %%A in ('dir %nuGetFolder%npm.* /b') DO SET "npmPath=%nuGetFolder%%%A\" - GOTO :build - -:build - ECHO Adding Npm and Node to path - REM SETLOCAL is on, so changes to the path not persist to the actual user's path - PATH="%npmPath%";"%nodePath%";%PATH% - SET buildFolder=%CD% - - ECHO Change directory to %CD%\..\src\Umbraco.Web.UI.Client\ - CD %CD%\..\src\Umbraco.Web.UI.Client\ - - ECHO Do npm install and the grunt build of Belle - call npm cache clean --quiet - call npm install --quiet - call npm install -g grunt-cli --quiet - call npm install -g bower --quiet - call grunt build --buildversion=%release% - - ECHO Move back to the build folder - CD "%buildFolder%" \ No newline at end of file diff --git a/build/Modules/Umbraco.Build/Get-UmbracoBuildEnv.ps1 b/build/Modules/Umbraco.Build/Get-UmbracoBuildEnv.ps1 new file mode 100644 index 0000000000..c58517bdd0 --- /dev/null +++ b/build/Modules/Umbraco.Build/Get-UmbracoBuildEnv.ps1 @@ -0,0 +1,171 @@ +# +# Get-UmbracoBuildEnv +# Gets the Umbraco build environment +# Downloads tools if necessary +# +function Get-UmbracoBuildEnv +{ + # store tools in the module's directory + # and cache them for two days + $path = "$PSScriptRoot\temp" + $cache = 2 + + if (-not (test-path $path)) + { + mkdir $path > $null + } + + # ensure we have NuGet + $nuget = "$path\nuget.exe" + $source = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe" + if ((test-path $nuget) -and ((ls $nuget).CreationTime -lt [DateTime]::Now.AddDays(-$cache))) + { + Remove-File $nuget + } + if (-not (test-path $nuget)) + { + Write-Host "Download NuGet..." + $client = new-object Net.WebClient + $client.DownloadFile($source, $nuget) + } + + # ensure we have 7-Zip + $sevenZip = "$path\7za.exe" + if ((test-path $sevenZip) -and ((ls $sevenZip).CreationTime -lt [DateTime]::Now.AddDays(-$cache))) + { + Remove-File $sevenZip + } + if (-not (test-path $sevenZip)) + { + Write-Host "Download 7-Zip..." + &$nuget install 7-Zip.CommandLine -OutputDirectory $path -Verbosity quiet + $dir = ls "$path\7-Zip.CommandLine.*" | sort -property Name -descending | select -first 1 + $file = ls -path "$dir" -name 7za.exe -recurse + mv "$dir\$file" $sevenZip + Remove-Directory $dir + } + + # ensure we have vswhere + $vswhere = "$path\vswhere.exe" + if ((test-path $vswhere) -and ((ls $vswhere).CreationTime -lt [DateTime]::Now.AddDays(-$cache))) + { + Remove-File $vswhere + } + if (-not (test-path $vswhere)) + { + Write-Host "Download VsWhere..." + &$nuget install vswhere -OutputDirectory $path -Verbosity quiet + $dir = ls "$path\vswhere.*" | sort -property Name -descending | select -first 1 + $file = ls -path "$dir" -name vswhere.exe -recurse + mv "$dir\$file" $vswhere + Remove-Directory $dir + } + + # ensure we have semver + $semver = "$path\Semver.dll" + if ((test-path $semver) -and ((ls $semver).CreationTime -lt [DateTime]::Now.AddDays(-$cache))) + { + Remove-File $semver + } + if (-not (test-path $semver)) + { + Write-Host "Download Semver..." + &$nuget install semver -OutputDirectory $path -Verbosity quiet + $dir = ls "$path\semver.*" | sort -property Name -descending | select -first 1 + $file = "$dir\lib\net452\Semver.dll" + if (-not (test-path $file)) + { + Write-Error "Failed to file $file" + return + } + mv "$file" $semver + Remove-Directory $dir + } + + # ensure we have node + $node = "$path\node-v6.9.1-win-x86" + $source = "http://nodejs.org/dist/v6.9.1/node-v6.9.1-win-x86.7z" + if (-not (test-path $node)) + { + Write-Host "Download Node..." + $client = new-object Net.WebClient + $client.DownloadFile($source, "$path\node-v6.9.1-win-x86.7z") + &$sevenZip x "$path\node-v6.9.1-win-x86.7z" -o"$path" -aos > $nul + Remove-File "$path\node-v6.9.1-win-x86.7z" + } + + # ensure we have npm + $npm = "$path\npm.*" + $getNpm = $true + if (test-path $npm) + { + $getNpm = $false + $tmpNpm = ls "$path\npm.*" | sort -property Name -descending | select -first 1 + if ($tmpNpm.CreationTime -lt [DateTime]::Now.AddDays(-$cache)) + { + $getNpm = $true + } + else + { + $npm = $tmpNpm.ToString() + } + } + if ($getNpm) + { + Write-Host "Download Npm..." + &$nuget install npm -OutputDirectory $path -Verbosity quiet + $npm = ls "$path\npm.*" | sort -property Name -descending | select -first 1 + $npm.CreationTime = [DateTime]::Now + $npm = $npm.ToString() + } + + # find visual studio + # will not work on VSO but VSO does not need it + $vsPath = "" + $vsVer = "" + $msBuild = $null + &$vswhere | foreach { + if ($_.StartsWith("installationPath:")) { $vsPath = $_.SubString("installationPath:".Length).Trim() } + if ($_.StartsWith("installationVersion:")) { $vsVer = $_.SubString("installationVersion:".Length).Trim() } + } + if ($vsPath -ne "") + { + $vsVerParts = $vsVer.Split('.') + $vsMajor = [int]::Parse($vsVerParts[0]) + $vsMinor = [int]::Parse($vsVerParts[1]) + if ($vsMajor -eq 15) { + $msBuild = "$vsPath\MSBuild\$vsMajor.$vsMinor\Bin" + } + elseif ($vsMajor -eq 14) { + $msBuild = "c:\Program Files (x86)\MSBuild\$vsMajor\Bin" + } + else + { + $msBuild = $null + } + } + + $vs = $null + if ($msBuild) + { + $vs = new-object -typeName PsObject + $vs | add-member -memberType NoteProperty -name Path -value $vsPath + $vs | add-member -memberType NoteProperty -name Major -value $vsMajor + $vs | add-member -memberType NoteProperty -name Minor -value $vsMinor + $vs | add-member -memberType NoteProperty -name MsBuild -value "$msBuild\MsBuild.exe" + } + + $solutionRoot = Get-FullPath "$PSScriptRoot\..\..\.." + + $uenv = new-object -typeName PsObject + $uenv | add-member -memberType NoteProperty -name SolutionRoot -value $solutionRoot + $uenv | add-member -memberType NoteProperty -name VisualStudio -value $vs + $uenv | add-member -memberType NoteProperty -name NuGet -value $nuget + $uenv | add-member -memberType NoteProperty -name Zip -value $sevenZip + $uenv | add-member -memberType NoteProperty -name VsWhere -value $vswhere + $uenv | add-member -memberType NoteProperty -name Semver -value $semver + $uenv | add-member -memberType NoteProperty -name NodePath -value $node + $uenv | add-member -memberType NoteProperty -name NpmPath -value $npm + + return $uenv +} diff --git a/build/Modules/Umbraco.Build/Get-UmbracoVersion.ps1 b/build/Modules/Umbraco.Build/Get-UmbracoVersion.ps1 new file mode 100644 index 0000000000..25d73df976 --- /dev/null +++ b/build/Modules/Umbraco.Build/Get-UmbracoVersion.ps1 @@ -0,0 +1,36 @@ +# +# Get-UmbracoVersion +# Gets the Umbraco version +# +function Get-UmbracoVersion +{ + $uenv = Get-UmbracoBuildEnv + + try + { + [Reflection.Assembly]::LoadFile($uenv.Semver) > $null + } + catch + { + Write-Error -Exception $_.Exception -Message "Failed to load $uenv.Semver" + break + } + + # parse SolutionInfo and retrieve the version string + $filepath = "$($uenv.SolutionRoot)\src\SolutionInfo.cs" + $text = [System.IO.File]::ReadAllText($filepath) + $match = [System.Text.RegularExpressions.Regex]::Matches($text, "AssemblyInformationalVersion\(`"(.+)?`"\)") + $version = $match.Groups[1] + + # semver-parse the version string + $semver = [SemVer.SemVersion]::Parse($version) + $release = "" + $semver.Major + "." + $semver.Minor + "." + $semver.Patch + + $versions = new-object -typeName PsObject + $versions | add-member -memberType NoteProperty -name Semver -value $semver + $versions | add-member -memberType NoteProperty -name Release -value $release + $versions | add-member -memberType NoteProperty -name Comment -value $semver.PreRelease + $versions | add-member -memberType NoteProperty -name Build -value $semver.Build + + return $versions +} diff --git a/build/Modules/Umbraco.Build/Get-VisualStudio.ps1 b/build/Modules/Umbraco.Build/Get-VisualStudio.ps1 new file mode 100644 index 0000000000..cc88984eb2 --- /dev/null +++ b/build/Modules/Umbraco.Build/Get-VisualStudio.ps1 @@ -0,0 +1,30 @@ +# finds msbuild +function Get-VisualStudio($vswhere) +{ + $vsPath = "" + $vsVer = "" + &$vswhere | foreach { + if ($_.StartsWith("installationPath:")) { $vsPath = $_.SubString("installationPath:".Length).Trim() } + if ($_.StartsWith("installationVersion:")) { $vsVer = $_.SubString("installationVersion:".Length).Trim() } + } + if ($vsPath -eq "") { return $null } + + $vsVerParts = $vsVer.Split('.') + $vsMajor = [int]::Parse($vsVerParts[0]) + $vsMinor = [int]::Parse($vsVerParts[1]) + if ($vsMajor -eq 15) { + $msBuild = "$vsPath\MSBuild\$vsMajor.$vsMinor\Bin" + } + elseif ($vsMajor -eq 14) { + $msBuild = "c:\Program Files (x86)\MSBuild\$vsMajor\Bin" + } + else { return $null } + $msBuild = "$msBuild\MsBuild.exe" + + $vs = new-object -typeName PsObject + $vs | add-member -memberType NoteProperty -name Path -value $vsPath + $vs | add-member -memberType NoteProperty -name Major -value $vsMajor + $vs | add-member -memberType NoteProperty -name Minor -value $vsMinor + $vs | add-member -memberType NoteProperty -name MsBuild -value $msBuild + return $vs +} diff --git a/build/Modules/Umbraco.Build/Set-UmbracoVersion.ps1 b/build/Modules/Umbraco.Build/Set-UmbracoVersion.ps1 new file mode 100644 index 0000000000..feece180fc --- /dev/null +++ b/build/Modules/Umbraco.Build/Set-UmbracoVersion.ps1 @@ -0,0 +1,117 @@ +# +# Set-UmbracoVersion +# Sets the Umbraco version +# +# -Version +# where is a Semver valid version +# eg 1.2.3, 1.2.3-alpha, 1.2.3-alpha+456 +# +function Set-UmbracoVersion +{ + param ( + [Parameter(Mandatory=$true)] + [string] + $version + ) + + $uenv = Get-UmbracoBuildEnv + + try + { + [Reflection.Assembly]::LoadFile($uenv.Semver) > $null + } + catch + { + Write-Error "Failed to load $uenv.Semver" + break + } + + # validate input + $ok = [Regex]::Match($version, "^[0-9]+\.[0-9]+\.[0-9]+(\-[a-z0-9]+)?(\+[0-9]+)?$") + if (-not $ok.Success) + { + Write-Error "Invalid version $version" + break + } + + # parse input + try + { + $semver = [SemVer.SemVersion]::Parse($version) + } + catch + { + Write-Error "Invalid version $version" + break + } + + # + $release = "" + $semver.Major + "." + $semver.Minor + "." + $semver.Patch + + # edit files and set the proper versions and dates + Write-Host "Update UmbracoVersion.cs" + Replace-FileText "$($uenv.SolutionRoot)\src\Umbraco.Core\Configuration\UmbracoVersion.cs" ` + "(\d+)\.(\d+)\.(\d+)(.(\d+))?" ` + "$release" + Replace-FileText "$($uenv.SolutionRoot)\src\Umbraco.Core\Configuration\UmbracoVersion.cs" ` + "CurrentComment { get { return `"(.+)`"" ` + "CurrentComment { get { return `"$semver.PreRelease`"" + Write-Host "Update SolutionInfo.cs" + Replace-FileText "$($uenv.SolutionRoot)\src\SolutionInfo.cs" ` + "AssemblyFileVersion\(`"(.+)?`"\)" ` + "AssemblyFileVersion(`"$release`")" + Replace-FileText "$($uenv.SolutionRoot)\src\SolutionInfo.cs" ` + "AssemblyInformationalVersion\(`"(.+)?`"\)" ` + "AssemblyInformationalVersion(`"$semver`")" + $year = [System.DateTime]::Now.ToString("yyyy") + Replace-FileText "$($uenv.SolutionRoot)\src\SolutionInfo.cs" ` + "AssemblyCopyright\(`"Copyright © Umbraco (\d{4})`"\)" ` + "AssemblyCopyright(`"Copyright © Umbraco $year`")" + + # edit csproj and set IIS Express port number + # this is a raw copy of ReplaceIISExpressPortNumber.exe + # it probably can be achieved in a much nicer way - l8tr + $source = @" + using System; + using System.IO; + using System.Xml; + using System.Globalization; + + namespace Umbraco + { + public static class PortUpdater + { + public static void Update(string path, string release) + { + XmlDocument xmlDocument = new XmlDocument(); + string fullPath = Path.GetFullPath(path); + xmlDocument.Load(fullPath); + int result = 1; + int.TryParse(release.Replace(`".`", `"`"), out result); + while (result < 1024) + result *= 10; + XmlNode xmlNode1 = xmlDocument.GetElementsByTagName(`"IISUrl`").Item(0); + if (xmlNode1 != null) + xmlNode1.InnerText = `"http://localhost:`" + (object) result; + XmlNode xmlNode2 = xmlDocument.GetElementsByTagName(`"DevelopmentServerPort`").Item(0); + if (xmlNode2 != null) + xmlNode2.InnerText = result.ToString((IFormatProvider) CultureInfo.InvariantCulture); + xmlDocument.Save(fullPath); + } + } + } +"@ + + $assem = ( + "System.Xml", + "System.IO", + "System.Globalization" + ) + + Write-Host "Update Umbraco.Web.UI.csproj" + add-type -referencedAssemblies $assem -typeDefinition $source -language CSharp + $csproj = "$($uenv.SolutionRoot)\src\Umbraco.Web.UI\Umbraco.Web.UI.csproj" + [Umbraco.PortUpdater]::Update($csproj, $release) + + return $semver +} diff --git a/build/Modules/Umbraco.Build/Umbraco.Build.psm1 b/build/Modules/Umbraco.Build/Umbraco.Build.psm1 new file mode 100644 index 0000000000..b303d03da1 --- /dev/null +++ b/build/Modules/Umbraco.Build/Umbraco.Build.psm1 @@ -0,0 +1,524 @@ + +# Umbraco.Build.psm1 +# +# $env:PSModulePath = "$pwd\build\Modules\;$env:PSModulePath" +# Import-Module Umbraco.Build -Force -DisableNameChecking +# +# PowerShell Modules: +# https://msdn.microsoft.com/en-us/library/dd878324%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396 +# +# PowerShell Module Manifest: +# https://msdn.microsoft.com/en-us/library/dd878337%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396 +# +# See also +# http://www.powershellmagazine.com/2014/08/15/pstip-taking-control-of-verbose-and-debug-output-part-5/ + + +. "$PSScriptRoot\Utilities.ps1" +. "$PSScriptRoot\Get-VisualStudio.ps1" + +. "$PSScriptRoot\Get-UmbracoBuildEnv.ps1" +. "$PSScriptRoot\Set-UmbracoVersion.ps1" +. "$PSScriptRoot\Get-UmbracoVersion.ps1" + +# +# Prepares the build +# +function Prepare-Build +{ + param ( + $uenv # an Umbraco build environment (see Get-UmbracoBuildEnv) + ) + + Write-Host ">> Prepare Build" + + $src = "$($uenv.SolutionRoot)\src" + $tmp = "$($uenv.SolutionRoot)\build.tmp" + $out = "$($uenv.SolutionRoot)\build.out" + + # clear + Write-Host "Clear folders and files" + + Remove-Directory "$src\Umbraco.Web.UI.Client\build" + Remove-Directory "$src\Umbraco.Web.UI.Client\bower_components" + + Remove-Directory "$tmp" + mkdir "$tmp" > $null + + Remove-Directory "$out" + mkdir "$out" > $null + + # prepare web.config + $webUi = "$src\Umbraco.Web.UI" + if (test-path "$webUi\web.config") + { + if (test-path "$webUi\web.config.temp-build") + { + Write-Host "Found existing web.config.temp-build" + $i = 0 + while (test-path "$webUi\web.config.temp-build.$i") + { + $i = $i + 1 + } + Write-Host "Save existing web.config as web.config.temp-build.$i" + Write-Host "(WARN: the original web.config.temp-build will be restored during post-build)" + mv "$webUi\web.config" "$webUi\web.config.temp-build.$i" + } + else + { + Write-Host "Save existing web.config as web.config.temp-build" + Write-Host "(will be restored during post-build)" + mv "$webUi\web.config" "$webUi\web.config.temp-build" + } + } + Write-Host "Create clean web.config" + Copy-File "$webUi\web.Template.config" "$webUi\web.config" +} + +# +# Builds the Belle UI project +# +function Compile-Belle +{ + param ( + $uenv, # an Umbraco build environment (see Get-UmbracoBuildEnv) + $version # an Umbraco version object (see Get-UmbracoVersion) + ) + + $tmp = "$($uenv.SolutionRoot)\build.tmp" + $src = "$($uenv.SolutionRoot)\src" + + Write-Host ">> Compile Belle" + Write-Host "Logging to $tmp\belle.log" + + push-location "$($uenv.SolutionRoot)\src\Umbraco.Web.UI.Client" + $p = $env:path + $env:path = $uenv.NpmPath + ";" + $uenv.NodePath + ";" + $env:path + + write "cache clean" > $tmp\belle.log + &npm cache clean --quiet >> $tmp\belle.log 2>&1 + &npm install --quiet >> $tmp\belle.log 2>&1 + &npm install -g grunt-cli --quiet >> $tmp\belle.log 2>&1 + &npm install -g bower --quiet >> $tmp\belle.log 2>&1 + &grunt build --buildversion=$version.Release >> $tmp\belle.log 2>&1 + + # fixme - should we filter the log to find errors? + #get-content .\build.tmp\belle.log | %{ if ($_ -match "build") { write $_}} + + pop-location + $env:path = $p + + + # setting node_modules folder to hidden + # used to prevent VS13 from crashing on it while loading the websites project + # also makes sure aspnet compiler does not try to handle rogue files and chokes + # in VSO with Microsoft.VisualC.CppCodeProvider -related errors + # use get-item -force 'cos it might be hidden already + write "Set hidden attribute on node_modules" + $dir = get-item -force "$src\Umbraco.Web.UI.Client\node_modules" + $dir.Attributes = $dir.Attributes -bor ([System.IO.FileAttributes]::Hidden) +} + +# +# Compiles Umbraco +# +function Compile-Umbraco +{ + param ( + $uenv # an Umbraco build environment (see Get-UmbracoBuildEnv) + ) + + $src = "$($uenv.SolutionRoot)\src" + $tmp = "$($uenv.SolutionRoot)\build.tmp" + $out = "$($uenv.SolutionRoot)\build.out" + + $buildConfiguration = "Release" + + if ($uenv.VisualStudio -eq $null) + { + Write-Error "Build environment does not provide VisualStudio." + break + } + + $toolsVersion = "4.0" + if ($uenv.VisualStudio.Major -eq 15) + { + $toolsVersion = "15.0" + } + + Write-Host ">> Compile Umbraco" + Write-Host "Logging to $tmp\msbuild.umbraco.log" + + # beware of the weird double \\ at the end of paths + # see http://edgylogic.com/blog/powershell-and-external-commands-done-right/ + &$uenv.VisualStudio.MsBuild "$src\Umbraco.Web.UI\Umbraco.Web.UI.csproj" ` + /p:WarningLevel=0 ` + /p:Configuration=$buildConfiguration ` + /p:UseWPP_CopyWebApplication=True ` + /p:PipelineDependsOnBuild=False ` + /p:OutDir=$tmp\bin\\ ` + /p:WebProjectOutputDir=$tmp\WebApp\\ ` + /p:Verbosity=minimal ` + /t:Clean`;Rebuild ` + /tv:$toolsVersion ` + /p:UmbracoBuild=True ` + > $tmp\msbuild.umbraco.log + + # /p:UmbracoBuild tells the csproj that we are building from PS +} + +# +# Prepare Tests +# +function Prepare-Tests +{ + param ( + $uenv # an Umbraco build environment (see Get-UmbracoBuildEnv) + ) + + $src = "$($uenv.SolutionRoot)\src" + $tmp = "$($uenv.SolutionRoot)\build.tmp" + + Write-Host ">> Prepare Tests" + + # fixme - idea is to avoid rebuilding everything for tests + # but because of our weird assembly versioning (with .* stuff) + # everything gets rebuilt all the time... + #Copy-Files "$tmp\bin" "." "$tmp\tests" + + # data + Write-Host "Copy data files" + mkdir "$tmp\tests\Packaging" > $null + Copy-Files "$src\Umbraco.Tests\Packaging\Packages" "*" "$tmp\tests\Packaging\Packages" + + # required for package install tests + Write-Host "Create bin directory" + mkdir "$tmp\tests\bin" > $null +} + +# +# Compiles Tests +# +function Compile-Tests +{ + param ( + $uenv # an Umbraco build environment (see Get-UmbracoBuildEnv) + ) + + $src = "$($uenv.SolutionRoot)\src" + $tmp = "$($uenv.SolutionRoot)\build.tmp" + $out = "$tmp\tests" + + $buildConfiguration = "Release" + + if ($uenv.VisualStudio -eq $null) + { + Write-Error "Build environment does not provide VisualStudio." + break + } + + $toolsVersion = "4.0" + if ($uenv.VisualStudio.Major -eq 15) + { + $toolsVersion = "15.0" + } + + Write-Host ">> Compile Tests (logging to $tmp\msbuild.tests.log)" + + # beware of the weird double \\ at the end of paths + # see http://edgylogic.com/blog/powershell-and-external-commands-done-right/ + &$uenv.VisualStudio.MsBuild "$src\Umbraco.Tests\Umbraco.Tests.csproj" ` + /p:WarningLevel=0 ` + /p:Configuration=$buildConfiguration ` + /p:UseWPP_CopyWebApplication=True ` + /p:PipelineDependsOnBuild=False ` + /p:OutDir=$out\\ ` + /p:Verbosity=minimal ` + /t:Build ` + /tv:$toolsVersion ` + /p:UmbracoBuild=True ` + > $tmp\msbuild.tests.log + + # /p:UmbracoBuild tells the csproj that we are building from PS +} + +# +# Cleans things up and prepare files after compilation +# +function Prepare-Packages +{ + param ( + $uenv # an Umbraco build environment (see Get-UmbracoBuildEnv) + ) + + Write-Host ">> Prepare Packages" + + $src = "$($uenv.SolutionRoot)\src" + $tmp = "$($uenv.SolutionRoot)\build.tmp" + $out = "$($uenv.SolutionRoot)\build.out" + + $buildConfiguration = "Release" + + # restore web.config + $webUi = "$src\Umbraco.Web.UI" + if (test-path "$webUi\web.config.temp-build") + { + Write-Host "Restoring existing web.config" + Remove-File "$webUi\web.config" + mv "$webUi\web.config.temp-build" "$webUi\web.config" + } + + # cleanup build + Write-Host "Clean build" + Remove-File "$tmp\bin\*.dll.config" + Remove-File "$tmp\WebApp\bin\*.dll.config" + + # cleanup presentation + Write-Host "Cleanup presentation" + Remove-Directory "$tmp\WebApp\umbraco.presentation" + + # create directories + Write-Host "Create directories" + mkdir "$tmp\Configs" > $null + mkdir "$tmp\Configs\Lang" > $null + mkdir "$tmp\WebApp\App_Data" > $null + #mkdir "$tmp\WebApp\Media" > $null + #mkdir "$tmp\WebApp\Views" > $null + + # copy various files + Write-Host "Copy xml documentation" + cp -force "$tmp\bin\*.xml" "$tmp\WebApp\bin" + + Write-Host "Copy transformed configs and langs" + # note: exclude imageprocessor/*.config as imageprocessor pkg installs them + Copy-Files "$tmp\WebApp\config" "*.config" "$tmp\Configs" ` + { -not $_.RelativeName.StartsWith("imageprocessor") } + Copy-Files "$tmp\WebApp\config" "*.js" "$tmp\Configs" + Copy-Files "$tmp\WebApp\config\lang" "*.xml" "$tmp\Configs\Lang" + Copy-File "$tmp\WebApp\web.config" "$tmp\Configs\web.config.transform" + + Write-Host "Copy transformed web.config" + Copy-File "$src\Umbraco.Web.UI\web.$buildConfiguration.Config.transformed" "$tmp\WebApp\web.config" + + # offset the modified timestamps on all umbraco dlls, as WebResources + # break if date is in the future, which, due to timezone offsets can happen. + Write-Host "Offset dlls timestamps" + ls -r "$tmp\*.dll" | foreach { + $_.CreationTime = $_.CreationTime.AddHours(-11) + $_.LastWriteTime = $_.LastWriteTime.AddHours(-11) + } + + # copy libs + Write-Host "Copy SqlCE libraries" + Copy-Files "$src\packages\SqlServerCE.4.0.0.1" "*.*" "$tmp\bin" ` + { -not $_.Extension.StartsWith(".nu") -and -not $_.RelativeName.StartsWith("lib\") } + Copy-Files "$src\packages\SqlServerCE.4.0.0.1" "*.*" "$tmp\WebApp\bin" ` + { -not $_.Extension.StartsWith(".nu") -and -not $_.RelativeName.StartsWith("lib\") } + + # copy Belle + Write-Host "Copy Belle" + Copy-Files "$src\Umbraco.Web.UI.Client\build\belle" "*" "$tmp\WebApp\umbraco" ` + { -not ($_.RelativeName -eq "index.html") } + + # prepare WebPI + Write-Host "Prepare WebPI" + Remove-Directory "$tmp\WebPi" + mkdir "$tmp\WebPi" > $null + mkdir "$tmp\WebPi\umbraco" > $null + Copy-Files "$tmp\WebApp" "*" "$tmp\WebPi\umbraco" + Copy-Files "$src\WebPi" "*" "$tmp\WebPi" +} + +# +# Creates the Zip packages +# +function Package-Zip +{ + param ( + $uenv # an Umbraco build environment (see Get-UmbracoBuildEnv) + ) + + Write-Host ">> Create Zip packages" + + $src = "$($uenv.SolutionRoot)\src" + $tmp = "$($uenv.SolutionRoot)\build.tmp" + $out = "$($uenv.SolutionRoot)\build.out" + + Write-Host "Zip all binaries" + &$uenv.Zip a -r "$out\UmbracoCms.AllBinaries.$($version.Semver).zip" ` + "$tmp\bin\*" ` + "-x!dotless.Core.*" ` + > $null + + Write-Host "Zip cms" + &$uenv.Zip a -r "$out\UmbracoCms.$($version.Semver).zip" ` + "$tmp\WebApp\*" ` + "-x!dotless.Core.*" "-x!Content_Types.xml" ` + > $null + + Write-Host "Zip WebPI" + &$uenv.Zip a -r "$out\UmbracoCms.WebPI.$($version.Semver).zip" ` + "$tmp\WebPi\*" ` + "-x!dotless.Core.*" ` + > $null + + # hash the webpi file + Write-Host "Hash WebPI" + $hash = Get-FileHash "$out\UmbracoCms.WebPI.$($version.Semver).zip" + Write $hash | out-file "$out\webpihash.txt" -encoding ascii +} + +# +# Prepares NuGet +# +function Prepare-NuGet +{ + param ( + $uenv # an Umbraco build environment (see Get-UmbracoBuildEnv) + ) + + Write-Host ">> Prepare NuGet" + + $src = "$($uenv.SolutionRoot)\src" + $tmp = "$($uenv.SolutionRoot)\build.tmp" + $out = "$($uenv.SolutionRoot)\build.out" + + # add Web.config transform files to the NuGet package + Write-Host "Add web.config transforms to NuGet package" + mv "$tmp\WebApp\Views\Web.config" "$tmp\WebApp\Views\Web.config.transform" + + # fixme - that one does not exist in .bat build either? + #mv "$tmp\WebApp\Xslt\Web.config" "$tmp\WebApp\Xslt\Web.config.transform" +} + +# +# Creates the NuGet packages +# +function Package-NuGet +{ + param ( + $uenv, # an Umbraco build environment (see Get-UmbracoBuildEnv) + $version # an Umbraco version object (see Get-UmbracoVersion) + ) + + $src = "$($uenv.SolutionRoot)\src" + $tmp = "$($uenv.SolutionRoot)\build.tmp" + $out = "$($uenv.SolutionRoot)\build.out" + $nuspecs = "$($uenv.SolutionRoot)\build\NuSpecs" + + Write-Host ">> Create NuGet packages" + + # see https://docs.microsoft.com/en-us/nuget/schema/nuspec + # note - warnings about SqlCE native libs being outside of 'lib' folder, + # nothing much we can do about it as it's intentional yet there does not + # seem to be a way to disable the warning + + &$uenv.NuGet Pack "$nuspecs\UmbracoCms.Core.nuspec" ` + -Properties BuildTmp="$tmp" ` + -Version $version.Semver.ToString() ` + -Symbols -Verbosity quiet -outputDirectory $out + + &$uenv.NuGet Pack "$nuspecs\UmbracoCms.nuspec" ` + -Properties BuildTmp="$tmp" ` + -Version $version.Semver.ToString() ` + -Verbosity quiet -outputDirectory $out +} + +# +# Builds Umbraco +# +function Build-Umbraco +{ + [CmdletBinding()] + param ( + [string] + $target = "all" + ) + + $target = $target.ToLowerInvariant() + Write-Host ">> Build-Umbraco <$target>" + + Write-Host "Get Build Environment" + $uenv = Get-UmbracoBuildEnv + + Write-Host "Get Version" + $version = Get-UmbracoVersion + Write-Host "Version $($version.Semver)" + + if ($target -eq "pre-build") + { + Prepare-Build $uenv + Compile-Belle $uenv $version + + # set environment variables + $env:UMBRACO_VERSION=$version.Semver.ToString() + $env:UMBRACO_RELEASE=$version.Release + $env:UMBRACO_COMMENT=$version.Comment + $env:UMBRACO_BUILD=$version.Build + + # set environment variable for VSO + # https://github.com/Microsoft/vsts-tasks/issues/375 + # https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md + Write-Host ("##vso[task.setvariable variable=UMBRACO_VERSION;]$($version.Semver.ToString())") + Write-Host ("##vso[task.setvariable variable=UMBRACO_RELEASE;]$($version.Release)") + Write-Host ("##vso[task.setvariable variable=UMBRACO_COMMENT;]$($version.Comment)") + Write-Host ("##vso[task.setvariable variable=UMBRACO_BUILD;]$($version.Build)") + + Write-Host ("##vso[task.setvariable variable=UMBRACO_TMP;]$($uenv.SolutionRoot)\build.tmp") + } + elseif ($target -eq "pre-tests") + { + Prepare-Tests $uenv + } + elseif ($target -eq "compile-tests") + { + Compile-Tests $uenv + } + elseif ($target -eq "compile-umbraco") + { + Compile-Umbraco $uenv + } + elseif ($target -eq "pre-packages") + { + Prepare-Packages $uenv + } + elseif ($target -eq "pre-nuget") + { + Prepare-NuGet $uenv + } + elseif ($target -eq "pkg-zip") + { + Package-Zip $uenv + } + elseif ($target -eq "compile-belle") + { + Compile-Belle $uenv $version + } + elseif ($target -eq "all") + { + Prepare-Build $uenv + Compile-Belle $uenv $version + Compile-Umbraco $uenv + Prepare-Tests $uenv + Compile-Tests $uenv + # not running tests... + Prepare-Packages $uenv + Package-Zip $uenv + Prepare-NuGet $uenv + Package-NuGet $uenv $version + } + else + { + Write-Error "Unsupported target `"$target`"." + } +} + +# +# export functions +# +Export-ModuleMember -function Get-UmbracoBuildEnv +Export-ModuleMember -function Set-UmbracoVersion +Export-ModuleMember -function Get-UmbracoVersion +Export-ModuleMember -function Build-Umbraco + +#eof \ No newline at end of file diff --git a/build/Modules/Umbraco.Build/Utilities.ps1 b/build/Modules/Umbraco.Build/Utilities.ps1 new file mode 100644 index 0000000000..a90a85b11f --- /dev/null +++ b/build/Modules/Umbraco.Build/Utilities.ps1 @@ -0,0 +1,83 @@ +# returns a string containing the hash of $file +function Get-FileHash($file) +{ + try + { + $crypto = new-object System.Security.Cryptography.SHA1CryptoServiceProvider + $stream = [System.IO.File]::OpenRead($file) + $hash = $crypto.ComputeHash($stream) + $text = "" + $hash | foreach ` + { + $text = $text + $_.ToString("x2") + } + return $text + } + finally + { + if ($stream) + { + $stream.Dispose() + } + $crypto.Dispose() + } +} + +# returns the full path if $file is relative to $pwd +function Get-FullPath($file) +{ + $path = [System.IO.Path]::Combine($pwd, $file) + $path = [System.IO.Path]::GetFullPath($path) + return $path +} + +# removes a directory, doesn't complain if it does not exist +function Remove-Directory($dir) +{ + remove-item $dir -force -recurse -errorAction SilentlyContinue > $null +} + +# removes a file, doesn't complain if it does not exist +function Remove-File($file) +{ + remove-item $file -force -errorAction SilentlyContinue > $null +} + +# copies a file, creates target dir if needed +function Copy-File($source, $target) +{ + $ignore = new-item -itemType file -path $target -force + cp -force $source $target +} + +# copies files to a directory +function Copy-Files($source, $select, $target, $filter) +{ + $files = ls -r "$source\$select" + $files | foreach { + $relative = $_.FullName.SubString($source.Length+1) + $_ | add-member -memberType NoteProperty -name RelativeName -value $relative + } + if ($filter -ne $null) { + $files = $files | where $filter + } + $files | + foreach { + if ($_.PsIsContainer) { + $ignore = new-item -itemType directory -path "$target\$($_.RelativeName)" -force + } + else { + Copy-File $_.FullName "$target\$($_.RelativeName)" + } + } +} + +# regex-replaces content in a file +function Replace-FileText($filename, $source, $replacement) +{ + $filepath = Get-FullPath $filename + $text = [System.IO.File]::ReadAllText($filepath) + $text = [System.Text.RegularExpressions.Regex]::Replace($text, $source, $replacement) + $utf8bom = New-Object System.Text.UTF8Encoding $true + [System.IO.File]::WriteAllText($filepath, $text, $utf8bom) +} diff --git a/build/ReplaceIISExpressPortNumber.exe b/build/ReplaceIISExpressPortNumber.exe deleted file mode 100644 index 04334ebffe..0000000000 Binary files a/build/ReplaceIISExpressPortNumber.exe and /dev/null differ diff --git a/build/UmbracoVersion.txt b/build/UmbracoVersion.txt deleted file mode 100644 index c12ac783cc..0000000000 --- a/build/UmbracoVersion.txt +++ /dev/null @@ -1,2 +0,0 @@ -# Usage: on line 2 put the release version, on line 3 put the version comment (example: beta) -7.6.4 \ No newline at end of file diff --git a/src/.nuget/NuGet.Config b/src/.nuget/NuGet.Config deleted file mode 100644 index 6a318ad9b7..0000000000 --- a/src/.nuget/NuGet.Config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/.nuget/NuGet.exe b/src/.nuget/NuGet.exe deleted file mode 100644 index 6804fb7da7..0000000000 Binary files a/src/.nuget/NuGet.exe and /dev/null differ diff --git a/src/.nuget/NuGet.targets b/src/.nuget/NuGet.targets deleted file mode 100644 index 6ff51f6e83..0000000000 --- a/src/.nuget/NuGet.targets +++ /dev/null @@ -1,138 +0,0 @@ - - - - $(MSBuildProjectDirectory)\..\ - - - false - - - false - - - true - - - false - - - - - - - - - - - - - $([System.IO.Path]::Combine($(SolutionDir), ".nuget")) - $([System.IO.Path]::Combine($(ProjectDir), "packages.config")) - - - - - $(SolutionDir).nuget - packages.config - - - - - $(NuGetToolsPath)\NuGet.exe - @(PackageSource) - - "$(NuGetExePath)" - mono --runtime=v4.0.30319 $(NuGetExePath) - - $(TargetDir.Trim('\\')) - - -RequireConsent - -NonInteractive - - "$(SolutionDir) " - "$(SolutionDir)" - - - $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch) -solutionDir $(PaddedSolutionDir) - $(NuGetCommand) pack "$(ProjectPath)" -Properties "Configuration=$(Configuration);Platform=$(Platform)" $(NonInteractiveSwitch) -OutputDirectory "$(PackageOutputDir)" -symbols - - - - RestorePackages; - $(BuildDependsOn); - - - - - $(BuildDependsOn); - BuildPackage; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tools/7zip/7za.exe b/tools/7zip/7za.exe deleted file mode 100644 index 7f6bf86bc4..0000000000 Binary files a/tools/7zip/7za.exe and /dev/null differ