Skip to content

init: rewrite configuration backend w/ units #1614

init: rewrite configuration backend w/ units

init: rewrite configuration backend w/ units #1614

Workflow file for this run

name: Build MOS Documentation and CodeBrowser
on:
push:
branches: ["main"]
workflow_dispatch:
# Allow one concurrent deployment
concurrency:
group: "mos-docs"
cancel-in-progress: true
jobs:
build:
name: Build
runs-on: ubuntu-latest
container:
image: archlinux:latest
steps:
- name: Install packages
run: |
pacman -Syu --noconfirm
pacman -S --noconfirm --needed base-devel git cmake ninja clang lld nasm cpio wget python jq llvm mtools unzip limine protobuf python-protobuf
pacman -S --noconfirm --needed python-setuptools graphviz doxygen npm nodejs
- 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 \
x86_64-mos-gcc \
x86_64-mos-binutils \
x86_64-mos-mlibc \
x86_64-mos-nlohmann-json \
mos-llvm \
mos-rust
- name: Configure CMake
run: |
cmake \
-B build \
-DMOS_CONFIG=x86_64-debug \
-DMOS_ARCH=x86_64 \
-G Ninja
- name: Build
run: |
cd build
ninja mos_limine mos_initrd
- name: Prepare - Build CodeBrowser
run: |
cd build
git clone https://github.com/moodyhunter/codebrowser
cd codebrowser
mkdir build && cd build
cmake .. -DCLANG_BUILTIN_HEADERS_DIR=/usr/lib/clang/*/include
make -j2
- name: Prepare - Clone Stylesheet
run: |
git clone https://github.com/jothepro/doxygen-awesome-css build/doxygen-awesome-css
- name: Prepare - Install Retype
run: |
npm install retypeapp
mkdir -p build/website_public/
- name: Build - Retype Website
run: npx retype build docs/ --output build/website_public/
- name: Build - Code Documentation
run: |
doxygen ./.github/workflows/Doxyfile
cd ./build/website_public/code-docs
mv html/* ./ && rmdir html
- name: Build - CodeBrowser
run: |
cd build
./codebrowser/build/generator/codebrowser_generator -d /code-browser/data -b ./compile_commands.json -a -o ./docs -p MOS:..
./codebrowser/build/indexgenerator/codebrowser_indexgenerator ./docs -d /code-browser/data
cp -rv ./codebrowser/data ./docs/data
mv ./docs ./website_public/code-browser
- name: Fix permissions
run: |
cd build
chmod -c -R +rX "website_public/" | while read line; do
echo "::warning title=Invalid file permissions automatically fixed::$line"
done
- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v3
with:
path: "build/website_public"
deploy:
needs: build
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4