Skip to content

fix(deps): update rust crate clap to v4.5.26 #2112

fix(deps): update rust crate clap to v4.5.26

fix(deps): update rust crate clap to v4.5.26 #2112

Workflow file for this run

name: Build MOS
on:
push:
workflow_dispatch:
jobs:
build:
name: "MOS ${{matrix.config.name}} (${{matrix.build_type}})"
runs-on: ubuntu-latest
container:
image: archlinux:latest
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
config:
- { "name": "x86_64", "arch": "x86_64", "bootwait": 20 }
- { "name": "RISC-V", "arch": "riscv64", "bootwait": 15 }
build_type: [Debug, Release]
steps:
- name: Install Packages
run: |
pacman -Syu --noconfirm base-devel git nasm jq ninja cpio wget unzip cmake limine protobuf python-protobuf python-setuptools
pacman -Syu --noconfirm qemu-system-x86 qemu-system-riscv
- name: Install Toolchains
run: |
echo "" >> /etc/pacman.conf
echo '[mos]' >> /etc/pacman.conf
echo 'SigLevel = Optional TrustAll' >> /etc/pacman.conf
echo 'Server = https://repo.mooody.me/$repo/$arch' >> /etc/pacman.conf
pacman -Sy --noconfirm rustup \
mos-sdk \
${{matrix.config.arch}}-mos-gcc \
${{matrix.config.arch}}-mos-binutils \
${{matrix.config.arch}}-mos-mlibc \
${{matrix.config.arch}}-mos-nlohmann-json \
${{matrix.config.arch}}-mos-tomlplusplus-headers \
mos-llvm \
mos-rust
pacman -Sy --noconfirm python-ptyprocess
rustup toolchain link mosdev /opt/mos-rust/
rustup default mosdev
- uses: actions/checkout@v4
with:
submodules: true
- name: Configure
run: |
cmake \
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
-DMOS_CONFIG=${{matrix.config.arch}}-default \
-DMOS_ARCH=${{matrix.config.arch}} \
-B build \
-G Ninja
ln -svf $(pwd)/build/ $(pwd)/build/${{matrix.config.arch}}
- name: Build
run: |
cd build
mkdir -p initrd/libs
# Copy the required libraries to the initrd
cp -rv /opt/${{matrix.config.arch}}-mos/lib/lib*.so* initrd/lib/
cp -rv /opt/${{matrix.config.arch}}-mos/lib/ld.so initrd/lib/
ninja mos_uefi_partition
- name: Upload Bootable Artifact
uses: actions/[email protected]
with:
name: MOS-${{matrix.build_type}}-${{matrix.config.arch}}
path: build/uefi-files
- name: Download OVMF UEFI Firmware
if: ${{matrix.config.arch}} == 'riscv64'
run: |
cd build
export OVMF_VERSION=edk2-stable202405-r1
wget "https://github.com/rust-osdev/ovmf-prebuilt/releases/download/$OVMF_VERSION/$OVMF_VERSION-bin.tar.xz"
tar -xvf $OVMF_VERSION-bin.tar.xz
mv $OVMF_VERSION-bin/riscv64/code.fd /opt/ovmf-riscv64.fd
- name: Test with single CPU
run: |
cd build
../tools/testing/main.py \
--arch ${{matrix.config.arch}} \
--kernel-tests \
-t 120 \
-w ${{matrix.config.bootwait}}
- name: Upload Test Results
if: always()
uses: actions/[email protected]
with:
name: MOS-${{matrix.build_type}}-${{matrix.config.arch}}-test-results-single-cpu
path: build/test-results/
- name: Test with multiple CPUs
run: |
cd build
rm -vrf test-results/
../tools/testing/main.py \
--arch ${{matrix.config.arch}} \
--kernel-tests \
--smp 8 \
-t 120 \
-w ${{matrix.config.bootwait}}
- name: Upload Test Results
if: always()
uses: actions/[email protected]
with:
name: MOS-${{matrix.build_type}}-${{matrix.config.arch}}-test-results-multiple-cpus
path: build/test-results/