chutzpah/MR_Chutzpah.xml (17 lines of code) (raw):

<?xml version="1.0" encoding="UTF-8"?> <meta-runner name="Chutzpah"> <description>Run Chutzpah tests</description> <settings> <parameters> <param name="mr.Chutzpah.pathsToTest" value="" spec="text validationMode='any' description='The files or folders to test, relative to the working directory.' display='normal' label='Paths to test:'" /> </parameters> <build-runners> <runner name="Install Chutzpah from Chocolatey" type="jetbrains_powershell"> <parameters> <param name="jetbrains_powershell_execution" value="PS1" /> <param name="jetbrains_powershell_noprofile" value="true" /> <param name="jetbrains_powershell_errorToError" value="error" /> <param name="jetbrains_powershell_script_mode" value="CODE" /> <param name="jetbrains_powershell_bitness" value="x86" /> <param name="teamcity.step.mode" value="default" /> <param name="jetbrains_powershell_script_code"><![CDATA[[CmdletBinding()] Param ( [string] $workingDir = "%teamcity.build.workingDir%" ) $ErrorActionPreference = "Stop" try { $chocolateyDir = $null if ($env:ChocolateyInstall -ne $null) { $chocolateyDir = $env:ChocolateyInstall } elseif (Test-Path (Join-Path $env:SYSTEMDRIVE Chocolatey)) { $chocolateyDir = Join-Path $env:SYSTEMDRIVE Chocolatey } elseif (Test-Path (Join-Path ([Environment]::GetFolderPath("CommonApplicationData")) Chocolatey)) { $chocolateyDir = Join-Path ([Environment]::GetFolderPath("CommonApplicationData")) Chocolatey } if ($chocolateyDir -eq $null) { Write-Host "##teamcity[progressMessage 'Chocolatey not installed; installing Chocolatey']" iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1')) $chocolateyDir = Join-Path ([Environment]::GetFolderPath("CommonApplicationData")) Chocolatey if (-not (Test-Path $chocolateyDir)) { throw "Error installing Chocolatey" } } else { Write-Host "Chocolatey already installed" } if ($chocolateyDir -ne "%env.ProgramData%\Chocolatey") { throw "Make sure you are running the latest version of Chocolatey and it's installed to %env.ProgramData%\Chocolatey; see known limitations at https://github.com/JetBrains/meta-runner-power-pack/Chutzpah" } $chocolateyBinDir = Join-Path $chocolateyDir "bin" $Chutzpah = Join-Path $chocolateyBinDir "chutzpah.console.exe" if (-not (Test-Path $Chutzpah)) { $choco = Join-Path $chocolateyDir "choco.exe" if (Test-Path (Join-Path $chocolateyBinDir "chutzpah.console.bat")) { Write-Host "##teamcity[progressMessage 'Found old-style shim for Chutzpah; forcing re-install']" iex "$choco install Chutzpah -f -y" if ($LASTEXITCODE -ne 0) { throw "Error force installing Chutzpah" } } else { Write-Host "##teamcity[progressMessage 'Chutzpah not installed; installing Chutzpah']" iex "$choco install Chutzpah -y" if ($LASTEXITCODE -ne 0) { throw "Error installing Chutzpah" } } } else { Write-Host "Chutzpah already installed" } } catch { Write-Host "##teamcity[buildStatus text='$_' status='FAILURE']" Write-Host "##teamcity[message text='$_' status='ERROR']" exit 1 }]]></param> </parameters> </runner> <runner name="Run Chutzpah tests" type="simpleRunner"> <parameters> <param name="command.executable" value="%env.ProgramData%\chocolatey\bin\chutzpah.console.exe" /> <param name="command.parameters" value="/path %mr.Chutzpah.pathsToTest% /failOnError" /> <param name="teamcity.step.mode" value="default" /> </parameters> </runner> </build-runners> <requirements /> </settings> </meta-runner>