Skip to content

group eslint updates #1270

group eslint updates

group eslint updates #1270

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, ubuntu-24.04, macos-12, macos-14, windows-2019]
node-version: [16.x, 18.x, 20.x, 22.x]
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
exclude:
- node-version: 16.x
platform: ubuntu-22.04
- node-version: 16.x
platform: ubuntu-24.04
- node-version: 16.x
python-version: 3.12
- platform: ubuntu-24.04
python-version: 3.8
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-12, macos-14, windows-2019]
node-version: [16.x, 18.x, 20.x, 22.x]
steps:
- uses: actions/checkout@v4
with:
submodules: true
- 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"
- name: Install conan
uses: turtlebrowser/get-conan@main
- name: Get conan home
id: conan_home
shell: bash
run: echo CONAN_HOME=`conan config home` >> "$GITHUB_OUTPUT"
- name: Cache conan artifacts
uses: actions/cache@v4
with:
path: ${{ steps.conan_home.outputs.CONAN_HOME }}
key: ${{ runner.os }}-${{ runner.arch }}
- 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-12, macos-14]
steps:
- uses: actions/checkout@v4
with:
submodules: true
- 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.11"
- 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-12, macos-14]
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Use Node.js 18.x
uses: actions/setup-node@v4
with:
node-version: 18.x
- uses: actions/setup-python@v5
with:
python-version: ${{ env.BUILTIN_PYTHON_VERSION }}
- run: npm install
- 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/assert-action@v2
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
with:
submodules: true
- 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
- 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-12, windows-2019]
steps:
- uses: actions/checkout@v4
with:
submodules: true
- 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.11"
- 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
with:
fetch-depth: 2
submodules: true
- 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
- uses: codecov/codecov-action@v3
with:
fail_ci_if_error: true
directory: ${{ github.workspace }}/coverage
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true