CI: Add Node.js nightly build to integration tests #75
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Integration tests | |
on: | |
- push | |
- pull_request | |
jobs: | |
integration: | |
name: ${{ matrix.name }} | |
container: ${{ matrix.container }} | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: Alpine 3.11 / Node.js 8 | |
container: node:8-alpine3.11 | |
node-version: 8 | |
expected-family: musl | |
expected-version: 1.1.24 | |
- name: Alpine 3.11 / Node.js 16 | |
container: node:16-alpine3.11 | |
node-version: 16 | |
expected-family: musl | |
expected-version: 1.1.24 | |
- name: Alpine 3.12 / Node.js 12 | |
container: node:12-alpine3.12 | |
node-version: 12 | |
expected-family: musl | |
expected-version: 1.1.24 | |
- name: Alpine 3.15 / Node.js 16 | |
container: node:16-alpine3.15 | |
node-version: 16 | |
expected-family: musl | |
expected-version: 1.2.2 | |
- name: Alpine 3.18 / Node.js 20 | |
container: node:20-alpine3.18 | |
node-version: 20 | |
expected-family: musl | |
expected-version: 1.2.4 | |
- name: Alpine Edge / Node.js Nightly | |
container: alpine:edge | |
node-version: 22-nightly | |
expected-family: musl | |
expected-version: 1.2.4 | |
- name: Amazon 2 / Node.js 16 | |
container: amazonlinux:2 | |
node-version: 16 | |
expected-family: glibc | |
expected-version: 2.26 | |
- name: Amazon 2023 / Node.js 20 | |
container: amazonlinux:2023 | |
node-version: 20 | |
expected-family: glibc | |
expected-version: 2.34 | |
- name: CentOS 7 / Node.js 8 | |
container: centos:centos7 | |
node-version: 8 | |
expected-family: glibc | |
expected-version: 2.17 | |
- name: CentOS 7 / Node.js 16 | |
container: centos:centos7 | |
node-version: 16 | |
expected-family: glibc | |
expected-version: 2.17 | |
- name: CentOS 8 / Node.js 10 | |
container: quay.io/centos/centos:stream8 | |
node-version: 10 | |
expected-family: glibc | |
expected-version: 2.28 | |
- name: CentOS 8 / Node.js 16 | |
container: quay.io/centos/centos:stream8 | |
node-version: 16 | |
expected-family: glibc | |
expected-version: 2.28 | |
- name: Debian 9 / Node.js 8 | |
container: node:8-stretch-slim | |
node-version: 8 | |
expected-family: glibc | |
expected-version: 2.24 | |
- name: Debian 9 / Node.js 16 | |
container: node:16-stretch-slim | |
node-version: 16 | |
expected-family: glibc | |
expected-version: 2.24 | |
- name: Debian 10 / Node.js 8 | |
container: node:8-buster-slim | |
node-version: 8 | |
expected-family: glibc | |
expected-version: 2.28 | |
- name: Debian 11 / Node.js 16 | |
container: node:16-bullseye-slim | |
node-version: 16 | |
expected-family: glibc | |
expected-version: 2.31 | |
- name: Debian 12 / Node.js 20 | |
container: node:20-bookworm-slim | |
node-version: 20 | |
expected-family: glibc | |
expected-version: 2.36 | |
- name: Fedora 33 / Node.js 10 | |
container: fedora:33 | |
node-version: 10 | |
expected-family: glibc | |
expected-version: 2.32 | |
- name: Fedora 33 / Node.js 16 | |
container: fedora:33 | |
node-version: 16 | |
expected-family: glibc | |
expected-version: 2.32 | |
- name: Fedora 35 / Node.js 12 | |
container: fedora:35 | |
node-version: 12 | |
expected-family: glibc | |
expected-version: 2.34 | |
- name: Fedora 35 / Node.js 16 | |
container: fedora:35 | |
node-version: 16 | |
expected-family: glibc | |
expected-version: 2.34 | |
- name: Fedora 39 / Node.js 18 | |
container: fedora:39 | |
node-version: 18 | |
expected-family: glibc | |
expected-version: 2.38 | |
- name: OpenSUSE 15.1 / Node.js 10 | |
container: opensuse/leap:15.1 | |
node-version: 10 | |
expected-family: glibc | |
expected-version: 2.26 | |
- name: OpenSUSE 15.3 / Node.js 14 | |
container: opensuse/leap:15.3 | |
node-version: 14 | |
expected-family: glibc | |
expected-version: 2.31 | |
- name: Ubuntu 14.04 / Node.js 8 | |
container: ubuntu:14.04 | |
node-version: 8 | |
expected-family: glibc | |
expected-version: 2.19 | |
- name: Ubuntu 18.04 / Node.js 8 | |
container: ubuntu:18.04 | |
node-version: 8 | |
expected-family: glibc | |
expected-version: 2.27 | |
- name: Ubuntu 22.04 / Node.js 18 | |
container: ubuntu:22.04 | |
node-version: 18 | |
expected-family: glibc | |
expected-version: 2.35 | |
- name: Void glibc / Node.js 16 | |
container: ghcr.io/void-linux/void-linux:latest-thin-x86_64 | |
node-version: 18 | |
expected-family: glibc | |
expected-version: 2.39 | |
- name: Void musl / Node.js 16 | |
container: ghcr.io/void-linux/void-linux:latest-thin-x86_64-musl | |
node-version: 18 | |
expected-family: musl | |
expected-version: 1.1.24 | |
steps: | |
- name: Install Node.js (RHEL) | |
if: contains(matrix.container, 'amazonlinux') || contains(matrix.container, 'centos') || contains(matrix.container, 'fedora:33') || contains(matrix.container, 'fedora:35') | |
run: | | |
yum module disable -y nodejs || true | |
curl -sL https://rpm.nodesource.com/setup_${{ matrix.node-version }}.x | bash - | |
yum install -y git nodejs | |
- name: Install Node.js (Fedora 39) | |
if: contains(matrix.container, 'fedora:39') | |
run: dnf install -y git nodejs | |
- name: Install Node.js (OpenSUSE) | |
if: contains(matrix.container, 'opensuse') | |
run: | | |
zypper refresh | |
zypper --non-interactive install git nodejs${{ matrix.node-version }} | |
- name: Install Node.js (Ubuntu) | |
if: contains(matrix.container, 'ubuntu') | |
run: | | |
apt-get update | |
apt-get install -y curl git gnupg | |
curl -sL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - | |
curl -sL https://deb.nodesource.com/setup_${{ matrix.node-version }}.x | bash - | |
apt-get install -y nodejs | |
- name: Install Node.js (Void) | |
if: contains(matrix.container, 'void') | |
run: | | |
xbps-install -Suy xbps | |
xbps-install -Sy git nodejs | |
- name: Install Node.js (Nightly) | |
if: contains(matrix.node-version, 'nightly') | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "${{ matrix.node-version }}" | |
- name: Checkout | |
uses: actions/checkout@v1 | |
- name: Verify expectations | |
run: | | |
export EXPECTED="${{ matrix.expected-family }} ${{ matrix.expected-version }}" | |
export ACTUAL="$(node ./test/integration.js)" | |
echo "Expected: $EXPECTED" | |
echo "Actual: $ACTUAL" | |
test "$EXPECTED" = "$ACTUAL" |