diff options
author | Jan Edmund Lazo <janedmundlazo@hotmail.com> | 2018-10-19 00:07:58 -0400 |
---|---|---|
committer | Jan Edmund Lazo <janedmundlazo@hotmail.com> | 2018-10-31 22:57:26 -0400 |
commit | 8ce3d0174eb25d6b48995106a7a62c663fd95bac (patch) | |
tree | c3d62cdace938a59e1bca4a20ca4b230f9136233 | |
parent | 9929af47fece84991c6527aca3ea86ff35a12956 (diff) | |
download | rneovim-8ce3d0174eb25d6b48995106a7a62c663fd95bac.tar.gz rneovim-8ce3d0174eb25d6b48995106a7a62c663fd95bac.tar.bz2 rneovim-8ce3d0174eb25d6b48995106a7a62c663fd95bac.zip |
ci: win: enable powershell's strict mode
Give variables a default value to pass strict mode.
$ErrorActionPreference defines the default behavior
if a powershell command fails.
If it's set to 'stop', then it aborts the script
on the first unresolved error.
This behavior extends to native programs like cmake
but do not depend on it.
https://github.com/PowerShell/PowerShell/issues/3996
-rw-r--r-- | ci/build.ps1 | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/ci/build.ps1 b/ci/build.ps1 index c5e6ab7925..5b3eb4d27d 100644 --- a/ci/build.ps1 +++ b/ci/build.ps1 @@ -1,4 +1,5 @@ -Set-PSDebug -Trace 1 +$ErrorActionPreference = 'stop' +Set-PSDebug -Strict -Trace 1 $env:CONFIGURATION -match '^(?<compiler>\w+)_(?<bits>32|64)(?:-(?<option>\w+))?$' $compiler = $Matches.compiler @@ -12,6 +13,7 @@ $nvimCmakeVars = @{ CMAKE_BUILD_TYPE = $cmakeBuildType; BUSTED_OUTPUT_TYPE = 'nvim'; } +$uploadToCodeCov = $false # For pull requests, skip some build configurations to save time. if ($env:APPVEYOR_PULL_REQUEST_HEAD_COMMIT -and $env:CONFIGURATION -match '^(MSVC_64|MINGW_32|MINGW_64-gcov)$') { @@ -20,6 +22,7 @@ if ($env:APPVEYOR_PULL_REQUEST_HEAD_COMMIT -and $env:CONFIGURATION -match '^(MSV function exitIfFailed() { if ($LastExitCode -ne 0) { + Set-PSDebug -Off exit $LastExitCode } } @@ -72,18 +75,20 @@ python -c "import neovim; print(str(neovim))" ; exitIfFailed python3 -c "import neovim; print(str(neovim))" ; exitIfFailed $env:PATH = "C:\Ruby24\bin;$env:PATH" -cmd /c gem.cmd install neovim ; exitIfFailed -where.exe neovim-ruby-host.bat ; exitIfFailed +gem.cmd install neovim +Get-Command -CommandType Application neovim-ruby-host.bat -cmd /c npm.cmd install -g neovim ; exitIfFailed -where.exe neovim-node-host.cmd ; exitIfFailed -cmd /c npm link neovim +npm.cmd install -g neovim +Get-Command -CommandType Application neovim-node-host.cmd +npm.cmd link neovim function convertToCmakeArgs($vars) { return $vars.GetEnumerator() | foreach { "-D$($_.Key)=$($_.Value)" } } -mkdir .deps +if (-Not (Test-Path -PathType container .deps)) { + mkdir .deps +} cd .deps cmake -G $cmakeGenerator $(convertToCmakeArgs($depsCmakeVars)) ..\third-party\ ; exitIfFailed cmake --build . --config $cmakeBuildType -- $cmakeGeneratorArgs ; exitIfFailed @@ -104,10 +109,10 @@ Set-PSDebug -Off cmake --build . --config $cmakeBuildType --target functionaltest -- $cmakeGeneratorArgs 2>&1 | foreach { $failed = $failed -or $_ -match 'functional tests failed with error'; $_ } -Set-PSDebug -Trace 1 if ($failed) { exit $LastExitCode } +Set-PSDebug -Strict -Trace 1 if ($uploadToCodecov) { |