Skip to content

ci: enable tests in CI #2040

ci: enable tests in CI

ci: enable tests in CI #2040

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 limine", "arch": "x86_64" }
- { "name": "RISC-V limine", "arch": "riscv64" }
build_type: [Debug, Release]
steps:
- name: Install packages
run: |
pacman -Syu --noconfirm base-devel git nasm mtools jq ninja qemu-system-x86 gnu-efi cpio wget unzip cmake limine protobuf python-protobuf python-setuptools libisoburn
- uses: actions/checkout@v4
with:
submodules: true
- 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 mos-llvm mos-rust
pacman -Sy --noconfirm python-ptyprocess
rustup toolchain link mosdev /opt/mos-rust/
rustup default mosdev
- 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: Test
run: |
cd build
../scripts/run-tests.py --arch ${{matrix.config.arch}} --kernelspace-tests -t 600 -w 120
- name: Upload Test Results
if: always()
uses: actions/[email protected]
with:
name: MOS-${{matrix.build_type}}-${{matrix.config.arch}}-test-results
path: build/test-results/