2013-05-12 05:38:00 +00:00
|
|
|
param (
|
|
|
|
[switch]$runTests = $false
|
|
|
|
)
|
|
|
|
|
|
|
|
|
2013-03-29 00:12:40 +00:00
|
|
|
$msBuild = 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe'
|
|
|
|
$outputFolder = '.\_output'
|
2013-05-12 01:32:03 +00:00
|
|
|
$testSearchPattern = '*.Test\bin\x86\Release'
|
|
|
|
$testPackageFolder = '.\_tests\'
|
2013-03-29 00:12:40 +00:00
|
|
|
|
|
|
|
Function Build()
|
|
|
|
{
|
|
|
|
$clean = $msbuild + " nzbdrone.sln /t:Clean /m"
|
2013-05-12 01:32:03 +00:00
|
|
|
$build = $msbuild + " nzbdrone.sln /p:Configuration=Release /p:Platform=x86 /t:Build /m"
|
2013-03-29 00:12:40 +00:00
|
|
|
|
|
|
|
if(Test-Path $outputFolder)
|
|
|
|
{
|
|
|
|
Remove-Item -Recurse -Force $outputFolder -ErrorAction Continue
|
|
|
|
}
|
|
|
|
|
|
|
|
Invoke-Expression $clean
|
|
|
|
Invoke-Expression $build
|
2013-05-12 01:32:03 +00:00
|
|
|
CleanFolder $outputFolder
|
2013-03-29 00:12:40 +00:00
|
|
|
}
|
|
|
|
|
2013-05-12 01:32:03 +00:00
|
|
|
Function CleanFolder($path)
|
2013-03-29 00:12:40 +00:00
|
|
|
{
|
|
|
|
Write-Host Removing XMLDoc files
|
2013-05-20 00:01:20 +00:00
|
|
|
get-childitem $path -File -Filter *.xml -Recurse | foreach ($_) {remove-item $_.fullname}
|
2013-05-12 01:32:03 +00:00
|
|
|
|
|
|
|
Write-Host Removing FluentValidation.Resources files
|
|
|
|
get-childitem $path -File -Filter FluentValidation.resources.dll -recurse | foreach ($_) {remove-item $_.fullname}
|
2013-05-12 05:38:00 +00:00
|
|
|
|
2013-05-20 00:01:20 +00:00
|
|
|
get-childitem $path -File -Filter app.config -Recurse | foreach ($_) {remove-item $_.fullname}
|
2013-05-12 01:32:03 +00:00
|
|
|
|
|
|
|
Write-Host Removing Empty folders
|
2013-05-16 04:55:15 +00:00
|
|
|
while (Get-ChildItem $path -recurse | where {!@(Get-ChildItem -force $_.fullname)} | Test-Path)
|
|
|
|
{
|
|
|
|
Get-ChildItem $path -Directory -recurse | where {!@(Get-ChildItem -force $_.fullname)} | Remove-Item
|
2013-05-12 01:32:03 +00:00
|
|
|
}
|
2013-03-29 00:12:40 +00:00
|
|
|
}
|
|
|
|
|
2013-05-12 01:32:03 +00:00
|
|
|
Function PackageTests()
|
|
|
|
{
|
|
|
|
Write-Host Packagin Tests
|
|
|
|
|
|
|
|
if(Test-Path $testPackageFolder)
|
|
|
|
{
|
|
|
|
Remove-Item -Recurse -Force $testPackageFolder -ErrorAction Continue
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Get-ChildItem -Recurse -Directory | Where-Object {$_.FullName -like $testSearchPattern} | foreach($_){
|
|
|
|
Copy-Item -Recurse ($_.FullName + "\*") $testPackageFolder -ErrorAction Ignore
|
|
|
|
}
|
|
|
|
|
|
|
|
CleanFolder $testPackageFolder
|
2013-05-12 05:38:00 +00:00
|
|
|
|
|
|
|
get-childitem $testPackageFolder -File -Filter *log.config | foreach ($_) {remove-item $_.fullname}
|
|
|
|
|
2013-05-12 01:32:03 +00:00
|
|
|
}
|
2013-03-29 00:12:40 +00:00
|
|
|
|
2013-05-12 05:38:00 +00:00
|
|
|
|
2013-05-16 00:33:27 +00:00
|
|
|
Function Nunit()
|
2013-05-12 05:38:00 +00:00
|
|
|
{
|
|
|
|
$testFiles
|
|
|
|
|
|
|
|
get-childitem $testPackageFolder -File -Filter *test.dll | foreach ($_) {
|
|
|
|
$testFiles = $testFiles + $_.FullName + " "
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
$nunitExe = '.\Libraries\nunit\nunit-console-x86.exe ' + $testFiles + ' /process:multiple /noxml'
|
|
|
|
Invoke-Expression $nunitExe
|
2013-05-16 00:33:27 +00:00
|
|
|
}
|
|
|
|
|
2013-05-16 04:55:15 +00:00
|
|
|
Function RunGrunt()
|
2013-05-16 00:33:27 +00:00
|
|
|
{
|
2013-05-16 20:49:16 +00:00
|
|
|
$gruntPath = [environment]::getfolderpath("applicationdata") + '\npm\node_modules\grunt-cli\bin\grunt'
|
2013-05-16 04:55:15 +00:00
|
|
|
|
2013-05-16 20:49:16 +00:00
|
|
|
if(!(Test-Path $gruntPath))
|
|
|
|
{
|
|
|
|
Invoke-Expression 'npm install grunt-cli -g'
|
|
|
|
}
|
|
|
|
|
|
|
|
Invoke-Expression 'npm install'
|
|
|
|
|
|
|
|
Invoke-Expression ('node ' + $gruntPath + ' package')
|
2013-05-16 00:33:27 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
Build
|
2013-05-16 04:55:15 +00:00
|
|
|
RunGrunt
|
2013-05-16 00:33:27 +00:00
|
|
|
PackageTests
|
|
|
|
|
|
|
|
if($runTests)
|
|
|
|
{
|
|
|
|
Nunit
|
2013-05-12 05:38:00 +00:00
|
|
|
}
|