Enhance appveyor.yml robustness
@@ -41,6 +41,19 @@ environment:
ARCH: x64
COMPILER: msvc2017
+
+install:
+ # If there is a newer build queued for the same PR, cancel this one.
+ # The AppVeyor 'rollout builds' option is supposed to serve the same
+ # purpose but it is problematic because it tends to cancel builds pushed
+ # directly to master instead of just PR builds (or the converse).
+ # credits: JuliaLang developers.
+ - ps: if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod `
+ https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | `
+ Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { `
+ throw "There are newer queued builds for this pull request, failing early." }
+
+
build_script:
- set _INITPATH=%PATH%
@@ -58,13 +71,13 @@ build_script:
- set GEOSINSTALL=C:\projects\deps\geos-%GEOSVERSION%-%COMPILER%-%ARCH%
- set CYTHONPF=C:\\projects\\deps\\geos-%GEOSVERSION%-%COMPILER%-%ARCH%
- ps: 'Write-Host "Checking GEOS build $env:GEOSINSTALL" -ForegroundColor Magenta'
- - call c:\projects\shapely\ci\appveyor\build_geos.cmd
+ - call %APPVEYOR_BUILD_FOLDER%\ci\appveyor\build_geos.cmd
# - ps: 'Push-AppveyorArtifact $env:GEOSINSTALL\bin\geos.dll'
# - ps: 'Push-AppveyorArtifact $env:GEOSINSTALL\bin\geos_c.dll'
- ps: 'Write-Host "Copying and checking geos_c.dll" -ForegroundColor Magenta'
- - cd C:\projects\shapely
+ - cd %APPVEYOR_BUILD_FOLDER%
- dir
- if %ARCH%==x86 ( set CPDIR=DLLs_x86_VC9 )
- if %ARCH%==x64 ( set CPDIR=DLLs_AMD64_VC9 )
