Skip to content

Drop support for Node.js 14 and 16, require >= 18.17.0 #941

Drop support for Node.js 14 and 16, require >= 18.17.0

Drop support for Node.js 14 and 16, require >= 18.17.0 #941

Workflow file for this run

name: CI (GitHub)
on:
- push
- pull_request
permissions: {}
jobs:
CI:
permissions:
contents: write # for npx prebuild to make release
name: ${{ matrix.container || matrix.os }} - Node.js ${{ matrix.platform }} ${{ matrix.nodejs_arch }} ${{ matrix.prebuild && '- prebuild' }}
runs-on: ${{ matrix.os }}
container: ${{ matrix.container }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-22.04
container: rockylinux:8
nodejs_version: "^18.17.0"
platform: linux-x64
prebuild: true
- os: ubuntu-22.04
container: rockylinux:8
nodejs_version: "^20.3.0"
platform: linux-x64
- os: ubuntu-22.04
container: node:18-alpine3.17
platform: linuxmusl-x64
prebuild: true
- os: ubuntu-22.04
container: node:20-alpine3.18
platform: linuxmusl-x64
- os: macos-11
nodejs_version: "^18.17.0"
nodejs_arch: x64
platform: darwin-x64
prebuild: true
- os: macos-11
nodejs_version: "^20.3.0"
nodejs_arch: x64
platform: darwin-x64
- os: windows-2019
nodejs_version: "^18.17.0"
nodejs_arch: x86
platform: win32-ia32
prebuild: true
- os: windows-2019
nodejs_version: "^20.3.0"
nodejs_arch: x86
platform: win32-ia32
- os: windows-2019
nodejs_version: "^18.17.0"
nodejs_arch: x64
platform: win32-x64
prebuild: true
- os: windows-2019
nodejs_version: "^20.3.0"
nodejs_arch: x64
platform: win32-x64
steps:
- name: Dependencies (Linux glibc)
if: contains(matrix.container, 'centos')
run: |
NODE_MAJOR="${{ contains(matrix.nodejs_version, '^18.') && '18' || '20' }}"
yum install -y https://rpm.nodesource.com/pub_${NODE_MAJOR}.x/nodistro/repo/nodesource-release-nodistro-1.noarch.rpm
yum install -y https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm
yum install -y centos-release-scl
yum install -y devtoolset-11-gcc-c++ make git python3 nodejs fontconfig google-noto-sans-fonts
echo "/opt/rh/devtoolset-11/root/usr/bin" >> $GITHUB_PATH
- name: Dependencies (Rocky Linux glibc)
if: contains(matrix.container, 'rockylinux')
run: |
NODE_MAJOR="${{ contains(matrix.nodejs_version, '^18.') && '18' || '20' }}"
mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_${NODE_MAJOR}.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
dnf install -y gcc-toolset-11-gcc-c++ make git python3 nodejs fontconfig google-noto-sans-fonts
echo "/opt/rh/gcc-toolset-11/root/usr/bin" >> $GITHUB_PATH
- name: Dependencies (Linux musl)
if: contains(matrix.container, 'alpine')
run: apk add build-base git python3 font-noto --update-cache
- name: Dependencies (Python 3.10 - macOS, Windows)
if: contains(matrix.os, 'macos') || contains(matrix.os, 'windows')
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Dependencies (Node.js - macOS, Windows)
if: contains(matrix.os, 'macos') || contains(matrix.os, 'windows')
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.nodejs_version }}
architecture: ${{ matrix.nodejs_arch }}
- name: Checkout
uses: actions/checkout@v3
- name: Fix working directory ownership
if: matrix.container
run: chown root.root .
- name: Install
run: npm install --build-from-source
- name: Test
run: npm test
- name: Prebuild
if: matrix.prebuild && startsWith(github.ref, 'refs/tags/')
env:
prebuild_upload: ${{ secrets.GITHUB_TOKEN }}
run: npx prebuild --runtime napi --target 7