Skip to content

platform: refine API parameter type constness #1618

platform: refine API parameter type constness

platform: refine API parameter type constness #1618

Workflow file for this run

name: Build MOS
on:
push:
workflow_dispatch:
jobs:
build:
name: "MOS ${{matrix.build_type}}, ${{matrix.config.name}}"
runs-on: ubuntu-latest
container:
image: archlinux:latest
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
build_type: [Debug, Release]
config:
# - {
# "name": "x86_64 UEFI (no SMP)",
# "arch": "x86_64",
# "target_triple": "x86_64-elf",
# "target": "mos_uefi_entry",
# "has_smp": "OFF",
# "compile_only": "ON", # we don't have a working platform support for now
# }
# - {
# "name": "x86_64 UEFI with SMP (1 core)",
# "arch": "x86_64",
# "target_triple": "x86_64-elf",
# "target": "mos_uefi_entry",
# "has_smp": "ON",
# "smp": "1",
# "compile_only": "ON",
# }
- {
"name": "x86_64 limine (no SMP)",
"arch": "x86_64",
"target_triple": "x86_64-elf",
"target": "mos_limine",
"has_smp": "n",
"compile_only": "ON",
}
# - {
# "name": "x86_64 limine with SMP (1 core)",
# "arch": "x86_64",
# "target_triple": "x86_64-elf",
# "target": "mos_limine",
# "has_smp": "y",
# "smp": "1",
# "compile_only": "ON",
# }
env:
MOS_TEST_SMP_COUNT: ${{matrix.config.smp}}
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
- uses: actions/checkout@v3
with:
submodules: true
- name: Install Toolchains
run: |
git clone https://github.com/moodyhunter/mos-packages
./mos-packages/fetch-package.sh ${{ matrix.config.arch }}-mos-gcc
./mos-packages/fetch-package.sh ${{ matrix.config.arch }}-mos-mlibc
- name: Configure
run: |
cmake \
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
-DMOS_CONFIG=${{matrix.config.arch}}-debug \
-DMOS_ARCH=${{matrix.config.arch}} \
-DMOS_SMP=${{matrix.config.has_smp}} \
-B build \
-G Ninja
- name: Build
run: |
cd build
ninja ${{matrix.config.target}} mos_initrd
- name: Upload Bootable Artifact
uses: actions/upload-artifact@v3
with:
name: MOS-${{matrix.config.target}}-${{matrix.build_type}}
path: build/boot.dir/
- name: Upload initrd
uses: actions/upload-artifact@v3
with:
name: MOS-${{matrix.config.target}}-${{matrix.build_type}}-initrd
path: build/initrd.cpio