mirror of
https://github.com/Icinga/icingabeat.git
synced 2025-08-15 06:48:08 +02:00
58 lines
2.1 KiB
PowerShell
Executable File
58 lines
2.1 KiB
PowerShell
Executable File
function Exec
|
|
{
|
|
param(
|
|
[Parameter(Position=0,Mandatory=1)][scriptblock]$cmd,
|
|
[Parameter(Position=1,Mandatory=0)][string]$errorMessage = ($msgs.error_bad_command -f $cmd)
|
|
)
|
|
|
|
& $cmd
|
|
if ($LastExitCode -ne 0) {
|
|
Write-Error $errorMessage
|
|
exit $LastExitCode
|
|
}
|
|
}
|
|
|
|
# Setup Go.
|
|
$env:GOPATH = $env:WORKSPACE
|
|
$env:PATH = "$env:GOPATH\bin;C:\tools\mingw64\bin;$env:PATH"
|
|
& gvm --format=powershell $(Get-Content .go-version) | Invoke-Expression
|
|
|
|
if (Test-Path "$env:beat") {
|
|
cd "$env:beat"
|
|
} else {
|
|
echo "$env:beat does not exist"
|
|
New-Item -ItemType directory -Path build | Out-Null
|
|
New-Item -Name build\TEST-empty.xml -ItemType File | Out-Null
|
|
exit
|
|
}
|
|
|
|
if (Test-Path "build") { Remove-Item -Recurse -Force build }
|
|
New-Item -ItemType directory -Path build\coverage | Out-Null
|
|
New-Item -ItemType directory -Path build\system-tests | Out-Null
|
|
New-Item -ItemType directory -Path build\system-tests\run | Out-Null
|
|
|
|
exec { go get -u github.com/jstemmer/go-junit-report }
|
|
|
|
echo "Building $env:beat"
|
|
exec { go build } "Build FAILURE"
|
|
|
|
if ($env:beat -eq "metricbeat") {
|
|
cp .\_meta\fields.common.yml .\_meta\fields.generated.yml
|
|
python .\scripts\fields_collector.py | out-file -append -encoding UTF8 -filepath .\_meta\fields.generated.yml
|
|
} elseif ($env:beat -eq "libbeat") {
|
|
cp .\_meta\fields.common.yml .\_meta\fields.generated.yml
|
|
cat processors\*\_meta\fields.yml | Out-File -append -encoding UTF8 -filepath .\_meta\fields.generated.yml
|
|
cp .\_meta\fields.generated.yml .\fields.yml
|
|
}
|
|
|
|
echo "Unit testing $env:beat"
|
|
go test -v $(go list ./... | select-string -Pattern "vendor" -NotMatch) 2>&1 | Out-File -encoding UTF8 build/TEST-go-unit.out
|
|
exec { Get-Content build/TEST-go-unit.out | go-junit-report.exe -set-exit-code | Out-File -encoding UTF8 build/TEST-go-unit.xml } "Unit test FAILURE"
|
|
|
|
echo "System testing $env:beat"
|
|
# TODO (elastic/beats#5050): Use a vendored copy of this.
|
|
exec { go get github.com/docker/libcompose }
|
|
exec { go test -race -c -cover -covermode=atomic -coverpkg ./... }
|
|
exec { cd tests/system }
|
|
exec { nosetests --with-timer --with-xunit --xunit-file=../../build/TEST-system.xml } "System test FAILURE"
|