Files
shell-scripts/nodesource/.github/workflows/ci.yaml
T

309 lines
10 KiB
YAML

name: "Test Installation Scripts"
on:
schedule:
- cron: "00 00 * * *"
push:
branches:
- master
pull_request:
branches:
- master
jobs:
deb:
name: "NodeJS ${{ matrix.version }}(${{ matrix.os }})"
runs-on: ubuntu-latest
strategy:
matrix:
version: [ 18, 20, 22, 23, 24, 25 ]
os: [ "ubuntu:24.04", "ubuntu:22.04", "debian:10" ]
container:
image: ${{ matrix.os }}
defaults:
run:
shell: bash
steps:
- name: Checkout Repo
uses: actions/checkout@v4
- name: Fix sources.list for Debian 10
if: contains(matrix.os, 'debian:10')
run: |
echo "deb http://archive.debian.org/debian buster main" > /etc/apt/sources.list
apt-get -o Acquire::Check-Valid-Until=false -o Acquire::AllowInsecureRepositories=true update
- name: Run Installation Script
run: ./scripts/deb/setup_${{ matrix.version }}.x
- name: Install Nodejs
run: apt install nodejs -y
- name: Validate Node Version
run: |
node -e "console.log(process.version)"
NODE_VERSION=$(node -e "console.log(process.version.split('.')[0])")
if [[ ${NODE_VERSION} != "v${{ matrix.version }}" ]]; then
echo "Node version is not ${{ matrix.version }}. It is $NODE_VERSION"
exit 1
fi
nsolid-deb:
name: "NSolid ${{ matrix.version }}(${{ matrix.os }})"
runs-on: ubuntu-latest
strategy:
matrix:
version: [ 18, 20, 22, 24 ]
os: [ "ubuntu:24.04", "ubuntu:22.04", "debian:10" ]
container:
image: ${{ matrix.os }}
defaults:
run:
shell: bash
steps:
- name: Checkout Repo
uses: actions/checkout@v4
- name: Fix sources.list for Debian 10
if: contains(matrix.os, 'debian:10')
run: |
echo "deb http://archive.debian.org/debian buster main" > /etc/apt/sources.list
apt-get -o Acquire::Check-Valid-Until=false -o Acquire::AllowInsecureRepositories=true update
- name: Run Installation Script
run: ./scripts/deb/setup_${{ matrix.version }}.x
- name: Install NSolid
run: apt install nsolid -y
- name: Validate NSolid Version
run: |
nsolid -e "console.log(process.version)"
NSOLID_VERSION=$(nsolid -e "console.log(process.version.split('.')[0])")
if [[ ${NSOLID_VERSION} != "v${{ matrix.version }}" ]]; then
echo "NSolid version is not ${{ matrix.version }}. It is $NSOLID_VERSION"
exit 1
fi
rpm:
name: "NodeJS ${{ matrix.version }}(${{ matrix.os }})"
runs-on: ubuntu-latest
strategy:
matrix:
version: [ 18, 20, 22, 23, 24, 25 ]
os: [ "fedora:36", "amazonlinux:2023", "rockylinux:9", "redhat/ubi9:latest" ]
container:
image: ${{ matrix.os }}
defaults:
run:
shell: bash
steps:
- name: Patch Rocky repos (avoid broken mirror)
if: contains(matrix.os, 'rocky')
run: |
set -euxo pipefail
for f in /etc/yum.repos.d/Rocky-*.repo; do
[ -f "$f" ] || continue
sed -i 's|^baseurl=.*|# baseurl disabled by CI|' "$f" || true
if grep -q '^mirrorlist=' "$f"; then
sed -i 's|^mirrorlist=.*|mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=$repo&release=$releasever|g' "$f" || true
else
echo 'mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=$repo&release=$releasever' >> "$f" || true
fi
if ! grep -qi '^skip_if_unavailable=' "$f"; then
echo 'skip_if_unavailable=True' >> "$f"
fi
done
(dnf clean all || microdnf clean all || true)
(dnf -y makecache || microdnf -y makecache || true)
- name: install git
run: |
dnf update -y
dnf install git -y
- name: Checkout Repo
uses: actions/checkout@v4
- name: Run Istallation Script
run: ./scripts/rpm/setup_${{ matrix.version }}.x
- name: Install Nodejs
run: |
dnf install nodejs -y
- name: Validate Node Version
run: |
node -e "console.log(process.version)"
NODE_VERSION=$(node -e "console.log((process.version).split('.')[0])")
if [[ ${NODE_VERSION} != "v${{ matrix.version }}" ]]; then
echo "Node version is not ${{ matrix.version }}. It is $NODE_VERSION"
exit 1
fi
nsolid-rpm:
name: "NSolid ${{ matrix.version }}(${{ matrix.os }})"
runs-on: ubuntu-latest
strategy:
matrix:
version: [ 18, 20, 22, 24 ]
os: [ "fedora:36", "amazonlinux:2023", "rockylinux:9", "redhat/ubi9:latest" ]
container:
image: ${{ matrix.os }}
defaults:
run:
shell: bash
steps:
- name: Patch Rocky repos (avoid broken mirror)
if: contains(matrix.os, 'rocky')
run: |
set -euxo pipefail
for f in /etc/yum.repos.d/Rocky-*.repo; do
[ -f "$f" ] || continue
sed -i 's|^baseurl=.*|# baseurl disabled by CI|' "$f" || true
if grep -q '^mirrorlist=' "$f"; then
sed -i 's|^mirrorlist=.*|mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=$repo&release=$releasever|g' "$f" || true
else
echo 'mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=$repo&release=$releasever' >> "$f" || true
fi
if ! grep -qi '^skip_if_unavailable=' "$f"; then
echo 'skip_if_unavailable=True' >> "$f"
fi
done
(dnf clean all || microdnf clean all || true)
(dnf -y makecache || microdnf -y makecache || true)
- name: install git
run: |
dnf update -y
dnf install git -y
- name: Checkout Repo
uses: actions/checkout@v4
- name: Run Installation Script
run: ./scripts/rpm/setup_${{ matrix.version }}.x
- name: Install NSolid
run: |
dnf install nsolid -y
- name: Validate NSolid Version
run: |
nsolid -e "console.log(process.version)"
NSOLID_VERSION=$(nsolid -e "console.log((process.version).split('.')[0])")
if [[ ${NSOLID_VERSION} != "v${{ matrix.version }}" ]]; then
echo "NSolid version is not ${{ matrix.version }}. It is $NSOLID_VERSION"
exit 1
fi
rpm-minimal:
name: "NodeJS ${{ matrix.version }}(${{ matrix.os }})"
runs-on: ubuntu-latest
strategy:
matrix:
version: [ 18, 20, 22, 23, 24, 25]
os: [ "rockylinux:9-minimal", "redhat/ubi9-minimal:latest" ]
container:
image: ${{ matrix.os }}
defaults:
run:
shell: bash
steps:
- name: Patch Rocky repos (avoid broken mirror)
if: contains(matrix.os, 'rocky')
run: |
set -euxo pipefail
for f in /etc/yum.repos.d/Rocky-*.repo; do
[ -f "$f" ] || continue
sed -i 's|^baseurl=.*|# baseurl disabled by CI|' "$f" || true
if grep -q '^mirrorlist=' "$f"; then
sed -i 's|^mirrorlist=.*|mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=$repo&release=$releasever|g' "$f" || true
else
echo 'mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=$repo&release=$releasever' >> "$f" || true
fi
if ! grep -qi '^skip_if_unavailable=' "$f"; then
echo 'skip_if_unavailable=True' >> "$f"
fi
done
(dnf clean all || microdnf clean all || true)
(dnf -y makecache || microdnf -y makecache || true)
- name: install git
run: |
microdnf update -y
microdnf install git -y
- name: Checkout Repo
uses: actions/checkout@v4
- name: Run Istallation Script
run: ./scripts/rpm/setup_${{ matrix.version }}.x
- name: Install Nodejs
run: |
microdnf install nodejs -y
- name: Validate Node Version
run: |
node -e "console.log(process.version)"
NODE_VERSION=$(node -e "console.log((process.version).split('.')[0])")
if [[ ${NODE_VERSION} != "v${{ matrix.version }}" ]]; then
echo "Node version is not ${{ matrix.version }}. It is $NODE_VERSION"
exit 1
fi
nsolid-rpm-minimal:
name: "NSolid ${{ matrix.version }}(${{ matrix.os }})"
runs-on: ubuntu-latest
strategy:
matrix:
version: [ 18, 20, 22, 24 ]
os: [ "rockylinux:9-minimal", "redhat/ubi9-minimal:latest" ]
container:
image: ${{ matrix.os }}
defaults:
run:
shell: bash
steps:
- name: Patch Rocky repos (avoid broken mirror)
if: contains(matrix.os, 'rocky')
run: |
set -euxo pipefail
for f in /etc/yum.repos.d/Rocky-*.repo; do
[ -f "$f" ] || continue
sed -i 's|^baseurl=.*|# baseurl disabled by CI|' "$f" || true
if grep -q '^mirrorlist=' "$f"; then
sed -i 's|^mirrorlist=.*|mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=$repo&release=$releasever|g' "$f" || true
else
echo 'mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=$repo&release=$releasever' >> "$f" || true
fi
if ! grep -qi '^skip_if_unavailable=' "$f"; then
echo 'skip_if_unavailable=True' >> "$f"
fi
done
(dnf clean all || microdnf clean all || true)
(dnf -y makecache || microdnf -y makecache || true)
- name: install git
run: |
microdnf update -y
microdnf install git -y
- name: Checkout Repo
uses: actions/checkout@v4
- name: Run Installation Script
run: ./scripts/rpm/setup_${{ matrix.version }}.x
- name: Install NSolid
run: |
microdnf install nsolid -y
- name: Validate NSolid Version
run: |
nsolid -e "console.log(process.version)"
NSOLID_VERSION=$(nsolid -e "console.log((process.version).split('.')[0])")
if [[ ${NSOLID_VERSION} != "v${{ matrix.version }}" ]]; then
echo "NSolid version is not ${{ matrix.version }}. It is $NSOLID_VERSION"
exit 1
fi