Skip to content

minios testing

minios testing #6

Workflow file for this run

name: minios testing
on:
workflow_dispatch:
push:
jobs:
gui-test:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
# =========================================
# INSTALL DEPENDENCIES
# =========================================
- name: Install packages
run: |
sudo apt update
sudo apt install -y \
build-essential \
gcc-multilib \
g++-multilib \
nasm \
qemu-system-i386 \
xvfb \
imagemagick \
x11-apps
# =========================================
# FIX i686-elf TOOLS
# =========================================
- name: Setup fake i686-elf toolchain
run: |
sudo ln -sf /usr/bin/gcc /usr/local/bin/i686-elf-gcc
sudo ln -sf /usr/bin/ld /usr/local/bin/i686-elf-ld
# =========================================
# PATCH MAKEFILE
# =========================================
- name: Force 32-bit linker mode
run: |
sed -i 's/i686-elf-ld /i686-elf-ld -m elf_i386 /' Makefile
# =========================================
# START VIRTUAL DISPLAY
# =========================================
- name: Start X11 framebuffer
run: |
Xvfb :99 -screen 0 1280x720x24 &
echo "DISPLAY=:99" >> $GITHUB_ENV
# =========================================
# BUILD OS
# =========================================
- name: Build minios
run: |
make
# =========================================
# RUN QEMU
# =========================================
- name: Start minios GUI
run: |
export DISPLAY=:99
timeout 25 qemu-system-i386 \
-kernel minios.bin \
-m 128M \
-vga std \
-rtc base=localtime \
-nic user,model=rtl8139 &
sleep 15
# =========================================
# TAKE SCREENSHOT
# =========================================
- name: Capture screenshot
run: |
export DISPLAY=:99
xwd -root -display :99 \
| convert xwd:- screenshot.png
# =========================================
# UPLOAD SCREENSHOT
# =========================================
- name: Upload screenshot
uses: actions/upload-artifact@v4
with:
name: minios-gui-screenshot
path: screenshot.png