Skip to content

Test Install Nu Pkgs #534

Test Install Nu Pkgs

Test Install Nu Pkgs #534

Workflow file for this run

# Description:
# - Test Install Nu Pkgs
# REF:
# - https://github.com/marketplace/actions/checkout
# - https://gemfury.com/guide/alpine/configure-apk/
name: Test Install Nu Pkgs
on:
workflow_dispatch:
schedule:
- cron: '15 0 * * *' # run at 00:15 AM UTC
push:
branches:
- main
- develop
paths-ignore:
- '**.md'
jobs:
install-apk:
name: Install Nu apk
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, ubuntu-24.04-arm]
runs-on: ${{ matrix.os }}
container:
image: alpine:latest
steps:
- name: Install Nushell APK
run: |
echo "https://alpine.fury.io/nushell/" | tee -a /etc/apk/repositories
apk update || true
# Use --allow-untrusted since the apk package is not signed currently
apk add --allow-untrusted nushell
cat /etc/shells
nu -c 'version'
install-rpm:
name: Install Nu rpm
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, ubuntu-24.04-arm]
image:
- fedora:latest
- fedora:41
- fedora:40
- fedora:39
- rockylinux:9
- rockylinux:8
- redhat/ubi10:latest
- redhat/ubi9:latest
- redhat/ubi8:latest
- almalinux:10
- almalinux:9
- almalinux:8
- openeuler/openeuler:25.03
- openeuler/openeuler:latest
- openeuler/openeuler:22.03-lts
runs-on: ${{ matrix.os }}
container:
image: ${{ matrix.image }}
steps:
- name: Test Install Nushell
run: |
echo "[nushell]
name=Nushell Repo
baseurl=https://yum.fury.io/nushell/
enabled=1
gpgcheck=0
gpgkey=https://yum.fury.io/nushell/gpg.key" | tee /etc/yum.repos.d/fury-nushell.repo
dnf install -y nushell
nu -c 'version'
- name: Checkout
uses: actions/checkout@v4
- name: Run Tests
run: nu nu/tests.nu
install-deb:
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, ubuntu-22.04-arm, ubuntu-24.04, ubuntu-24.04-arm]
runs-on: ${{ matrix.os }}
name: Install Nu deb@${{ matrix.os }}
steps:
- name: Test Install Nushell DEB Package
run: |
curl -fsSL https://apt.fury.io/nushell/gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/fury-nushell.gpg
echo "deb https://apt.fury.io/nushell/ /" | sudo tee /etc/apt/sources.list.d/fury.list
sudo apt update
sudo apt install nushell
nu -c 'version'
- name: Checkout
uses: actions/checkout@v4
- name: Run Tests
run: nu nu/tests.nu
install-on-arch:
name: Install Nu on Arch Linux
runs-on: ubuntu-24.04
container:
image: archlinux:latest
steps:
- name: Test Install Nushell
run: |
pacman -Sy --noconfirm wget
curl -s https://api.github.com/repos/nushell/integrations/releases/latest \
| grep browser_download_url | cut -d '"' -f 4 | grep x86_64.pkg.tar.zst \
| xargs wget -O nushell.pkg.tar.zst
pacman -U --noconfirm nushell.pkg.tar.zst
nu -c 'version'
- name: Checkout
uses: actions/checkout@v4
- name: Run Tests
run: nu nu/tests.nu
install-on-debian:
name: Install Nu deb
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, ubuntu-24.04-arm]
image:
- debian:trixie
- debian:bookworm
- debian:bullseye
runs-on: ${{ matrix.os }}
container:
image: ${{ matrix.image }}
steps:
- name: Test Install Nushell
run: |
# Disable SSL certificate checking for apt (not recommended for production!)
echo 'Acquire::https::Verify-Peer "false";' | tee /etc/apt/apt.conf.d/99insecure
echo 'Acquire::https::Verify-Host "false";' | tee -a /etc/apt/apt.conf.d/99insecure
# curl & gpg are not available in debian images, so we install without verifying the gpg key
# Add the repository with trusted=yes so that apt does not verify package signatures
echo "deb [trusted=yes] https://apt.fury.io/nushell/ /" | tee /etc/apt/sources.list.d/fury.list
apt update
apt install nushell
nu -c 'version'
- name: Checkout
uses: actions/checkout@v4
- name: Run Tests
run: nu nu/tests.nu
install-deb-riscv:
name: Install Nu deb on RISC-V
strategy:
fail-fast: false
matrix:
image:
- ubuntu:24.04
- ubuntu:22.04
- debian:trixie
runs-on: ubuntu-24.04-arm
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: riscv64
- name: Checkout
uses: actions/checkout@v4
- name: Test Install Nu on RISC-V
run: |
docker pull --platform=linux/riscv64 ${{ matrix.image }}
# Create a script to run inside the container
cat > install-nu.sh << 'EOF'
# Disable SSL certificate checking for apt (not recommended for production!)
echo 'Acquire::https::Verify-Peer "false";' | tee /etc/apt/apt.conf.d/99insecure
echo 'Acquire::https::Verify-Host "false";' | tee -a /etc/apt/apt.conf.d/99insecure
# curl & gpg are not available in debian images, so we install without verifying the gpg key
# Add the repository with trusted=yes so that apt does not verify package signatures
echo "deb [trusted=yes] https://apt.fury.io/nushell/ /" | tee /etc/apt/sources.list.d/fury.list
apt update
apt install nushell
nu -c 'version'
nu /work/nu/tests.nu
EOF
chmod +x install-nu.sh
# Run the container with QEMU emulation
docker run --platform=linux/riscv64 --rm -v $(pwd):/work ${{ matrix.image }} bash /work/install-nu.sh