Skip to content

Bump actions/setup-python from 4 to 5 #1081

Bump actions/setup-python from 4 to 5

Bump actions/setup-python from 4 to 5 #1081

Workflow file for this run

# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Node.js CI
on:
push:
branches: [ '*' ]
pull_request:
branches: [ main ]
workflow_dispatch:
inputs:
testNetwork:
description: 'Run tests that require network connectivity'
required: false
default: '0'
jobs:
bundled_gdal_coverage:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Use Node.js 20.x
uses: actions/setup-node@v4
with:
node-version: 20.x
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
max-size: 1000M
key: coverage
- run: npm install --ignore-scripts
- run: npx @mapbox/node-pre-gyp configure --debug --enable_coverage
env:
CXX: ccache g++
CC: ccache gcc
- name: Build from sources
run: npx @mapbox/node-pre-gyp build -j max --debug --enable_coverage
env:
CXX: ccache g++
CC: ccache gcc
- name: Run unit tests
run: npx c8 npm test
env:
MOCHA_TEST_NETWORK: 1
- name: Collect code coverage
run: |
npm run gcov
npm run lcov
- run: npm run codecov
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
test_distros_shared:
runs-on: ubuntu-latest
strategy:
matrix:
linux-version: [ 'ubuntu:22.04', 'ubuntu:20.04', 'debian:bullseye', 'fedora:37', 'centos:stream8' ]
steps:
- uses: actions/checkout@v4
- name: Use Node.js 20.x
uses: actions/setup-node@v4
with:
node-version: 20.x
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
max-size: 1000M
key: distros-shared-${{ matrix.linux-version }}
- run: npm run container dev ${{ matrix.linux-version }} 16 shared
env:
MOCHA_TEST_NETWORK: ${{ github.event.inputs.testNetwork }}
test_distros_bundled:
runs-on: ubuntu-latest
strategy:
matrix:
linux-version: [ 'amazonlinux:2022' ]
steps:
- uses: actions/checkout@v4
- name: Use Node.js 20.x
uses: actions/setup-node@v4
with:
node-version: 20.x
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
max-size: 1000M
key: distros-bundled-${{ matrix.linux-version }}
- run: npm run container dev ${{ matrix.linux-version }} 16 bundled
env:
MOCHA_TEST_NETWORK: ${{ github.event.inputs.testNetwork }}
test_node:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [ 16, 18, 20, 21 ]
gdal-version: [ 'shared', 'bundled' ]
steps:
- uses: actions/checkout@v4
- name: Use Node.js 20.x
uses: actions/setup-node@v4
with:
node-version: 20.x
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
max-size: 1000M
key: node-${{ matrix.node-version }}
- run: npm run container dev ubuntu:20.04 ${{ matrix.node-version }} ${{ matrix.gdal-version }}
env:
MOCHA_TEST_NETWORK: ${{ github.event.inputs.testNetwork }}
test_asan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js 20.x
uses: actions/setup-node@v4
with:
node-version: 20.x
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
max-size: 1000M
key: asan
- run: npm run container asan ubuntu:20.04 16 bundled
env:
MOCHA_TEST_NETWORK: ${{ github.event.inputs.testNetwork }}
test_mac:
runs-on: macos-11
strategy:
matrix:
node-version: [ 16.x, 18.x, 20.x, 21.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"
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
max-size: 1000M
key: mac-${{ matrix.node-version }}
- run: npm install --ignore-scripts
- run: npx @mapbox/node-pre-gyp configure
env:
CXX: ccache g++
CC: ccache gcc
- name: Build from sources
run: npx @mapbox/node-pre-gyp build -j max
env:
CXX: ccache g++
CC: ccache gcc
- name: Run unit tests
run: npm test
env:
MOCHA_TEST_NETWORK: ${{ github.event.inputs.testNetwork }}
test_mac_debug:
runs-on: macos-11
steps:
- uses: actions/checkout@v4
- name: Use Node.js 20.x
uses: actions/setup-node@v4
with:
node-version: 20.x
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
max-size: 1000M
key: mac-debug
- run: npm install --ignore-scripts
- run: npx @mapbox/node-pre-gyp configure --debug
env:
CXX: ccache g++
CC: ccache gcc
- name: Build from sources
run: npx @mapbox/node-pre-gyp build -j max
env:
CXX: ccache g++
CC: ccache gcc
- name: Run unit tests
run: npm test
env:
MOCHA_TEST_NETWORK: ${{ github.event.inputs.testNetwork }}
test_win:
runs-on: windows-2019
strategy:
matrix:
node-version: [ 16.x, 18.x, 20.x, 21.x ]
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- run: npm install --ignore-scripts
- run: npm install node-gyp
- run: npx @mapbox/node-pre-gyp configure
- name: Build from sources
run: npx @mapbox/node-pre-gyp build -j max
- name: Run unit tests
run: npm test
env:
MOCHA_TEST_NETWORK: ${{ github.event.inputs.testNetwork }}
test_win_debug:
runs-on: windows-2019
steps:
- uses: actions/checkout@v4
- name: Use Node.js 20.x
uses: actions/setup-node@v4
with:
node-version: 20.x
- run: npm install --ignore-scripts
- run: npx @mapbox/node-pre-gyp configure --debug
- name: Build from sources
run: npx @mapbox/node-pre-gyp build -j max
- name: Run unit tests
run: npm test
env:
MOCHA_TEST_NETWORK: ${{ github.event.inputs.testNetwork }}