1dist: xenial 2language: python 3cache: pip 4addons: 5 homebrew: 6 update: true 7 packages: 8 - npm 9 - pyenv 10jobs: 11 include: 12 - name: "Python 2.7 on Linux" 13 env: NODE_GYP_FORCE_PYTHON=python2 14 python: 2.7 15 16 - name: "Node.js 6 & Python 3.8 on Linux" 17 python: 3.8 18 env: NODE_GYP_FORCE_PYTHON=python3 19 before_install: nvm install 6 20 - name: "Node.js 8 & Python 3.8 on Linux" 21 python: 3.8 22 env: NODE_GYP_FORCE_PYTHON=python3 23 before_install: nvm install 8 24 - name: "Node.js 10 & Python 3.8 on Linux" 25 python: 3.8 26 env: NODE_GYP_FORCE_PYTHON=python3 27 before_install: nvm install 10 28 - name: "Node.js 12 & Python 3.5 on Linux" 29 python: 3.5 30 env: NODE_GYP_FORCE_PYTHON=python3 31 before_install: nvm install 12 32 - name: "Node.js 12 & Python 3.6 on Linux" 33 python: 3.6 34 env: NODE_GYP_FORCE_PYTHON=python3 35 before_install: nvm install 12 36 - name: "Node.js 12 & Python 3.7 on Linux" 37 python: 3.7 38 env: NODE_GYP_FORCE_PYTHON=python3 39 before_install: nvm install 12 40 - name: "Node.js 12 & Python 3.8 on Linux" 41 python: 3.8 42 env: NODE_GYP_FORCE_PYTHON=python3 43 before_install: nvm install 12 44 45 - name: "Python 2.7 on macOS" 46 os: osx 47 osx_image: xcode11.2 48 language: shell # 'language: python' is not yet supported on macOS 49 env: NODE_GYP_FORCE_PYTHON=python2 PATH=$HOME/.pyenv/shims:$PATH PYENV_VERSION=2.7.17 50 before_install: pyenv install $PYENV_VERSION 51 - name: "Python 3.8 on macOS" 52 os: osx 53 osx_image: xcode11.2 54 language: shell # 'language: python' is not yet supported on macOS 55 env: NODE_GYP_FORCE_PYTHON=python3 PATH=$HOME/.pyenv/shims:$PATH PYENV_VERSION=3.8.0 56 before_install: pyenv install $PYENV_VERSION 57 58 - name: "Node.js 6 & Python 2.7 on Windows" 59 os: windows 60 language: node_js 61 node_js: 6 # node 62 env: >- 63 PATH=/c/Python27:/c/Python27/Scripts:$PATH 64 NODE_GYP_FORCE_PYTHON=/c/Python27/python.exe 65 before_install: choco install python2 66 - name: "Node.js 12 & Python 2.7 on Windows" 67 os: windows 68 language: node_js 69 node_js: 12 # node 70 env: >- 71 PATH=/c/Python27:/c/Python27/Scripts:$PATH 72 NODE_GYP_FORCE_PYTHON=/c/Python27/python.exe 73 before_install: choco install python2 74 75 - name: "Node.js 12 & Python 3.7 on Windows" 76 os: windows 77 language: node_js 78 node_js: 12 # node 79 env: >- 80 PATH=/c/Python37:/c/Python37/Scripts:$PATH 81 NODE_GYP_FORCE_PYTHON=/c/Python37/python.exe 82 before_install: choco install python --version=3.7.4 83 - name: "Node.js 12 & Python 3.8 on Windows" 84 os: windows 85 language: node_js 86 node_js: 12 # node 87 env: >- 88 PATH=/c/Python38:/c/Python38/Scripts:$PATH 89 NODE_GYP_FORCE_PYTHON=/c/Python38/python.exe 90 before_install: choco install python 91 92install: 93 - python -m pip install --upgrade flake8 pytest==4.6.6 # pytest 5 no longer supports legacy Python 94before_script: 95 - python -m flake8 --version 96 # stop the build if there are Python syntax errors or undefined names 97 - python -m flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics 98 # exit-zero treats all errors as warnings. Two space indentation is OK. The GitHub editor is 127 chars wide 99 - python -m flake8 . --count --exit-zero --ignore=E111,E114,W503 --max-complexity=10 --max-line-length=127 --statistics 100 - npm install 101 - npm list 102script: 103 - node -e 'require("npmlog").level="verbose"; require("./lib/find-python")(null,()=>{})' 104 - npm test 105 - GYP_MSVS_VERSION=2015 GYP_MSVS_OVERRIDE_PATH="C:\\Dummy" python -m pytest 106notifications: 107 on_success: change 108 on_failure: change # `always` will be the setting once code changes slow down 109