-
-
Notifications
You must be signed in to change notification settings - Fork 9
138 lines (129 loc) · 3.06 KB
/
build-katsu.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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
name: Build Live ISO images (with Katsu)
env:
DNF_PKGS: |
git
xorriso
rpm
limine
systemd
btrfs-progs
e2fsprogs
xfsprogs
dosfstools
grub2
parted
util-linux-core
systemd-container
grub2-efi
uboot-images-armv8
uboot-tools
rustc
qemu-user-static-aarch64
qemu-user-binfmt
qemu-kvm
qemu-img
cargo
systemd-devel
mkpasswd
clang-devel
moby-engine
squashfs-tools
erofs-utils
grub2-tools
grub2-tools-extra
isomd5sum
on:
push:
workflow_dispatch:
jobs:
image:
strategy:
fail-fast: false
matrix:
variant:
- base/base-disk-x86_64
- base/base-disk-aarch64
runs-on: ubuntu-latest
container:
image: ghcr.io/terrapkg/builder:f38
# Pass /dev from host to container
# Very hacky, but it works
# Microsoft/Github, if you're reading this,
# I'm sorry.
options: --privileged -v /dev:/dev
steps:
- name: Install dependencies
run: |
dnf install -y $DNF_PKGS
dnf clean all
- name: Clone Katsu
uses: actions/checkout@v3
with:
repository: FyraLabs/katsu
ref: main
path: katsu
- name: Build Katsu
run: |
pushd katsu
cargo build --release
cp target/release/katsu /usr/bin/katsu
popd
- name: Checkout
uses: actions/checkout@v2
- name: Build ISO
run: |
pushd katsu
katsu --output=disk-image modules/${{ matrix.variant }}.yaml
xz -z9 katsu-work/image/katsu.img -c > katsu-work/image/katsu-arm.img.xz
popd
- name: Upload ISO
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.variant }}-disk
path: katsu/katsu-work/image/*.img.xz
live-iso:
strategy:
fail-fast: false
matrix:
variant:
- flagship/flagship-live
- gnome/gnome-live
- kde/kde-live
- pantheon/pantheon-live
runs-on: ubuntu-latest
container:
image: ghcr.io/terrapkg/builder:f38
# Pass /dev from host to container
# Very hacky, but it works
# Microsoft/Github, if you're reading this,
# I'm sorry.
options: --privileged -v /dev:/dev
steps:
- name: Install dependencies
run: |
dnf install -y $DNF_PKGS
dnf clean all
- name: Clone Katsu
uses: actions/checkout@v3
with:
repository: FyraLabs/katsu
ref: main
path: katsu
- name: Build Katsu
run: |
pushd katsu
cargo build --release
cp target/release/katsu /usr/bin/katsu
popd
- name: Checkout
uses: actions/checkout@v2
- name: Build ISO
run: |
pushd katsu
katsu --output=iso modules/${{ matrix.variant }}.yaml
popd
- name: Upload ISO
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.variant }}-live
path: katsu/out.iso