inspec/omnibus/omnibus-test.ps1

51 lines
1.9 KiB
PowerShell
Raw Normal View History

# Stop script execution when a non-terminating error occurs
$ErrorActionPreference = "Stop"
$channel = "$Env:CHANNEL"
If ([string]::IsNullOrEmpty($channel)) { $channel = "unstable" }
$product = "$Env:PRODUCT"
If ([string]::IsNullOrEmpty($product)) { $product = "inspec" }
$version = "$Env:VERSION"
If ([string]::IsNullOrEmpty($version)) { $version = "latest" }
. C:\buildkite-agent\bin\load-omnibus-toolchain.ps1
If ($env:OMNIBUS_WINDOWS_ARCH -eq "x86") {
$architecture = "i386"
}
ElseIf ($env:OMNIBUS_WINDOWS_ARCH -eq "x64") {
$architecture = "x86_64"
}
Write-Output "--- Downloading $channel $product $version"
$download_url = C:\opscode\omnibus-toolchain\embedded\bin\mixlib-install.bat download --url --channel "$channel" "$product" --version "$version" --architecture "$architecture"
$package_file = "$Env:Temp\$(Split-Path -Path $download_url -Leaf)"
Invoke-WebRequest -OutFile "$package_file" -Uri "$download_url"
Write-Output "--- Checking that $package_file has been signed."
If ((Get-AuthenticodeSignature "$package_file").Status -eq 'Valid') {
Write-Output "Verified $package_file has been signed."
}
Else {
Write-Output "Exiting with an error because $package_file has not been signed. Check your omnibus project config."
exit 1
}
Write-Output "--- Installing $channel $product $version"
Start-Process "$package_file" /quiet -Wait
Write-Output "--- Running verification for $channel $product $version"
# reload Env:PATH to ensure it gets any changes that the install made (e.g. C:\opscode\inspec\bin\ )
$Env:PATH = [System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path", "User")
# Set GEM_HOME and GEM_PATH to verify our appbundle inspec shim is correctly
# removing them from the environment while launching from our embedded ruby.
$Env:GEM_HOME = "C:\SHOULD_NOT_EXIST"
$Env:GEM_PATH = "C:\SHOULD_NOT_EXIST"
inspec version
If ($lastexitcode -ne 0) { Exit $lastexitcode }