fix(deps): update rust crate clap to v4.5.26 #2112
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: 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/ |