diff options
Diffstat (limited to '.appveyor.yml')
-rw-r--r-- | .appveyor.yml | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/.appveyor.yml b/.appveyor.yml new file mode 100644 index 000000000..cfad2a52f --- /dev/null +++ b/.appveyor.yml @@ -0,0 +1,69 @@ +environment: + matrix: + # Unit and integration tests. + - PYTHON: "C:\\Python27" + - PYTHON: "C:\\Python36-x64" + - PYTHON: "C:\\Python27" + RUN_INTEGRATION_TESTS: "True" + - PYTHON: "C:\\Python36-x64" + RUN_INTEGRATION_TESTS: "True" + # Unit tests only. + - PYTHON: "C:\\Python27-x64" + - PYTHON: "C:\\Python34" + - PYTHON: "C:\\Python34-x64" + - PYTHON: "C:\\Python35" + - PYTHON: "C:\\Python35-x64" + - PYTHON: "C:\\Python36" + +install: + - "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%" + - "python --version" + - "pip install certifi tox" + # Fix git SSL errors. + - "python -m certifi >cacert.txt" + - "set /p GIT_SSL_CAINFO=<cacert.txt" + - "set GIT_SSL_CAINFO" + +build: off + +cache: + - '%LOCALAPPDATA%\pip\Cache' + +test_script: + - ps: | + function should_run_tests { + if ("$env:APPVEYOR_PULL_REQUEST_NUMBER" -eq "") { + Write-Host "Not a pull request - running tests" + return $true + } + Write-Host "Pull request $env:APPVEYOR_PULL_REQUEST_NUMBER based on branch $env:APPVEYOR_REPO_BRANCH" + git fetch -q origin +refs/heads/$env:APPVEYOR_REPO_BRANCH + $changes = (git diff --name-only HEAD (git merge-base HEAD FETCH_HEAD)) + Write-Host "Files changed:" + Write-Host $changes + $important = $changes | Where-Object { $_ -NotLike "*.rst" } | + Where-Object { $_ -NotLike "docs*" } | + Where-Object { $_ -NotLike "news*" } | + Where-Object { $_ -NotLike "*travis*" } | + Where-Object { $_ -NotLike ".github*" } + if (!$important) { + Write-Host "Only documentation changes - skipping tests" + return $false + } + + Write-Host "Pull request $env:APPVEYOR_PULL_REQUEST_NUMBER alters code - running tests" + return $true + } + + if (should_run_tests) { + # Shorten paths, workaround https://bugs.python.org/issue18199 + subst T: $env:TEMP + $env:TEMP = "T:\" + $env:TMP = "T:\" + if ($env:RUN_INTEGRATION_TESTS -eq "True") { + tox -e py -- -m integration -n 3 --duration=5 + } + else { + tox -e py -- -m unit -n 3 + } + } |