Skip to content

nightly - macOS

nightly - macOS #80

Workflow file for this run

name: nightly - macOS
on:
schedule:
- cron: "0 3 * * *" # run daily at 3:00 AM UTC
workflow_dispatch:
jobs:
build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
token: ${{ secrets.PAT_TOKEN }}
- name: Install dependencies
run: brew install nasm curl make
- name: Fetch and install toolchain
run: |
curl https://jewelcodes.io/lux/toolchain-macos-arm64.tar.xz -o toolchain-macos-arm64.tar.xz
tar -xvJf toolchain-macos-arm64.tar.xz
mv toolchain $HOME/work/toolchain
mv host $HOME/work/host
echo "$HOME/work/toolchain/bin" >> $GITHUB_PATH
- name: Verify toolchain is executable
run: x86_64-lux-gcc -v
- name: Build LXFS disk image manager
run: make -C lxfs
- name: Build x86_64 boot loader
run: make -C boot-x86_64
- name: Build kernel
run: make -C kernel
- name: Build lucerna
run: make -C lucerna
- name: Install lucerna
run: make install -C lucerna
- name: Build servers
run: make -C servers
- name: Install servers
run: make install -C servers
- name: Build lumen
run: make -C lumen
- name: Create disk image
run: make
- name: Timestamp disk image
run: mv lux.hdd lux-nightly-$(date +"%Y-%m-%d").hdd
- name: Archive disk image
uses: actions/upload-artifact@v4
with:
name: disk-image
path: lux*.hdd
- name: Clean up artifacts
run: |
rm -rf *.hdd toolchain-macos-arm64.tar.xz $HOME/work/toolchain $HOME/work/host
make clean