Test Install Nu Pkgs #534
This file contains hidden or 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
| # 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 |