Skip to content

1.5.0

1.5.0 #1029

Workflow file for this run

name: Node.js CI
on:
push:
branches: ["*"]
pull_request:
branches: ["*"]
env:
BUILTIN_PYTHON_VERSION: 3.12.2
jobs:
shared_python:
runs-on: ${{ matrix.platform }}
strategy:
fail-fast: false
matrix:
platform: [ubuntu-20.04, ubuntu-22.04, macos-11, windows-2019]
node-version: [16.x, 18.x, 20.x]
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
exclude:
- node-version: 16.x
platform: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- run: npm install --ignore-scripts
- run: npx @mapbox/node-pre-gyp configure
- run: npx @mapbox/node-pre-gyp build -j max
- run: python3 -m pip install --upgrade pip
- run: pip3 install -r test/requirements.txt
- run: npm test
builtin_python:
runs-on: ${{ matrix.platform }}
strategy:
matrix:
platform: [ubuntu-20.04, macos-11, windows-2019]
node-version: [16.x, 18.x, 20.x]
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- run: npm install --ignore-scripts
- run: npx @mapbox/node-pre-gyp configure --builtin-python=true
- run: npx @mapbox/node-pre-gyp build -j max
- run: node ./scripts/pympip install --upgrade pip
- run: node ./scripts/pympip install -r test/requirements.txt
- run: npm test
- run: |
node ./scripts/pympip install --no-binary :all: xxhash
node -e "require('pymport').pymport('xxhash')"
external_python:
runs-on: ${{ matrix.platform }}
strategy:
matrix:
platform: [ubuntu-latest, macos-11]
steps:
- uses: actions/checkout@v4
- name: Use Node.js 18.x
uses: actions/setup-node@v4
with:
node-version: 18.x
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: set LIBS
run: echo LIBS=`pkg-config --libs python3-embed` >> $GITHUB_ENV
- name: set CXXFLAGS
run: echo CXXFLAGS=`pkg-config --cflags python3-embed` >> $GITHUB_ENV
- run: npm install --ignore-scripts
- run: npx @mapbox/node-pre-gyp configure --external_python
- run: npx @mapbox/node-pre-gyp build -j max
- run: python3 -m pip install --upgrade pip
- run: pip3 install -r test/requirements.txt
- run: npm test
external_python_wo_rebuild_posix:
runs-on: ${{ matrix.platform }}
strategy:
matrix:
platform: [ubuntu-latest, macos-11]
steps:
- uses: actions/checkout@v4
- name: Use Node.js 18.x
uses: actions/setup-node@v4
with:
node-version: 18.x
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: npm install --ignore-scripts
- run: npx @mapbox/node-pre-gyp configure --builtin_python
- run: npx @mapbox/node-pre-gyp build -j max
- run: python3 -m pip install --upgrade pip
- run: pip3 install -r test/requirements.txt
- name: Find system Python
run: echo PYTHONHOME=$(python -c "import sys; print(sys.prefix)") >> $GITHUB_ENV
- name: Test PYTHONOME
run: echo READ_PYTHONHOME=$(node -e "console.log(require('pymport').version.pythonHome)") >> $GITHUB_ENV
- uses: nick-fields/[email protected]
with:
expected: ${{ env.PYTHONHOME }}
actual: ${{ env.READ_PYTHONHOME }}
comparison: exact
- run: npm test
env:
MOCHA_SKIP_VERSION_CHECK: 1
external_python_wo_rebuild_win:
runs-on: windows-2019
steps:
- uses: actions/checkout@v4
- name: Use Node.js 18.x
uses: actions/setup-node@v4
with:
node-version: 18.x
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: npm install --ignore-scripts
- run: npx @mapbox/node-pre-gyp configure --builtin_python
- run: npx @mapbox/node-pre-gyp build -j max
- run: python3 -m pip install --upgrade pip
- run: pip3 install -r test/requirements.txt
- name: Find system Python
run: echo PYTHONHOME=$(python -c "import sys; print(sys.prefix)") >> $env:GITHUB_ENV
- name: Test PYTHONHOME
run: echo READ_PYTHONHOME=$(node -e "console.log(require('pymport').version.pythonHome)") >> $env:GITHUB_ENV
- uses: nick-fields/assert-action@v2
with:
expected: ${{ env.PYTHONHOME }}
actual: ${{ env.READ_PYTHONHOME }}
comparison: exact
- run: npm test
debug_build:
runs-on: ${{ matrix.platform }}
strategy:
matrix:
platform: [macos-11, windows-2019]
steps:
- uses: actions/checkout@v4
- name: Use Node.js 18.x
uses: actions/setup-node@v4
with:
node-version: 18.x
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: npm install --ignore-scripts
- run: npx @mapbox/node-pre-gyp configure --debug
- run: npx @mapbox/node-pre-gyp build -j max
- run: python3 -m pip install --upgrade pip
- run: pip3 install -r test/requirements.txt
- run: npm test
env:
PYMPORT_DEBUG_INIT: 1
codecov:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js 18.x
uses: actions/setup-node@v4
with:
node-version: 18.x
- run: npm install --ignore-scripts
- run: npx node-pre-gyp configure --debug --enable_coverage
- run: npx node-pre-gyp build
- run: python3 -m pip install --upgrade pip
- run: pip3 install -r test/requirements.txt
- run: npx c8 npm test
env:
PYMPORT_DEBUG_INIT: 1
- run: npm run gcov
- run: npm run lcov
- run: npm run codecov
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}