# AppVeyor.com is a Continuous Integration service to build and run tests under # Windows # https://ci.appveyor.com/project/sklearn-ci/scikit-learn environment: global: # SDK v7.0 MSVC Express 2008's SetEnv.cmd script will fail if the # /E:ON and /V:ON options are not enabled in the batch script interpreter # See: http://stackoverflow.com/a/13751649/163740 CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\build_tools\\appveyor\\run_with_env.cmd" WHEELHOUSE_UPLOADER_USERNAME: sklearn-appveyor WHEELHOUSE_UPLOADER_SECRET: secure: BQm8KfEj6v2Y+dQxb2syQvTFxDnHXvaNktkLcYSq7jfbTOO6eH9n09tfQzFUVcWZ # Make sure we don't download large datasets when running the test on # continuous integration platform SKLEARN_SKIP_NETWORK_TESTS: 1 matrix: - PYTHON: "C:\\Python37-x64" PYTHON_VERSION: "3.7.0" PYTHON_ARCH: "64" - PYTHON: "C:\\Python27" PYTHON_VERSION: "2.7.8" PYTHON_ARCH: "32" # Because we only have a single worker, we don't want to waste precious # appveyor CI time and make other PRs wait for repeated failures in a failing # PR. The following option cancels pending jobs in a given PR after the first # job failure in that specific PR. matrix: fast_finish: true 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 is problematic because it tends to cancel builds pushed # directly to master instead of just PR builds. # 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=500).builds | ` Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { ` throw "There are newer queued builds for this pull request, failing early." } # Install Python (from the official .msi of http://python.org) and pip when # not already installed. - "powershell ./build_tools/appveyor/install.ps1" - "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%" - "python -m pip install -U pip" # Check that we have the expected version and architecture for Python - "python --version" - "python -c \"import struct; print(struct.calcsize('P') * 8)\"" - "pip --version" # Install the build and runtime dependencies of the project. - "%CMD_IN_ENV% pip install --timeout=60 --trusted-host 28daf2247a33ed269873-7b1aad3fab3cc330e1fd9d109892382a.r6.cf2.rackcdn.com -r build_tools/appveyor/requirements.txt" - "%CMD_IN_ENV% python setup.py bdist_wheel bdist_wininst -b doc/logos/scikit-learn-logo.bmp" - ps: "ls dist" # Install the generated wheel package to test it - "pip install --pre --no-index --find-links dist/ scikit-learn" # Not a .NET project, we build scikit-learn in the install step instead build: false test_script: # Change to a non-source folder to make sure we run the tests on the # installed library. - mkdir "../empty_folder" - cd "../empty_folder" - pytest --showlocals --durations=20 --pyargs sklearn # Move back to the project folder - cd "../scikit-learn" artifacts: # Archive the generated wheel package in the ci.appveyor.com build report. - path: dist\* on_success: # Upload the generated wheel package to Rackspace - "python -m wheelhouse_uploader upload --local-folder=dist sklearn-windows-wheels" notifications: - provider: Webhook url: https://webhooks.gitter.im/e/0dc8e57cd38105aeb1b4 on_build_success: false on_build_failure: True cache: # Use the appveyor cache to avoid re-downloading large archives such # the MKL numpy and scipy wheels mirrored on a rackspace cloud # container, speed up the appveyor jobs and reduce bandwidth # usage on our rackspace account. - '%APPDATA%\pip\Cache'