-
-
Notifications
You must be signed in to change notification settings - Fork 2
72 lines (53 loc) · 1.71 KB
/
nightly-mac.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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