• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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