Skip to content

Commit

Permalink
Exploit common configurations for recovery/release images
Browse files Browse the repository at this point in the history
  • Loading branch information
ahesford committed Jul 1, 2022
1 parent 1be8ed0 commit 10e3624
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 50 deletions.
26 changes: 17 additions & 9 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,18 @@ jobs:
steps:
- uses: actions/checkout@master

- name: Build release artifacts
- name: Prepare repository for build
run: |
rm -rf /zbm
ln -s "$(pwd)" /zbm
cp /zbm/etc/zfsbootmenu/release.conf.d/release.conf /zbm/etc/zfsbootmenu/dracut.conf.d/
echo "zfsbootmenu_module_root='/zbm/zfsbootmenu'" >> /zbm/etc/zfsbootmenu/dracut.conf.d/release.conf
/zbm/releng/docker/zbm-build.sh -b /zbm/releng/docker -e '.Global.DracutFlags += ["--no-early-microcode"]' -- --debug
echo "zfsbootmenu_module_root='/zbm/zfsbootmenu'" > /zbm/etc/zfsbootmenu/dracut.conf.d/zbm_modroot.conf
yq-go e '.Global.DracutFlags += ["--no-early-microcode"]' /zbm/releng/docker/config.yaml.default > /zbm/releng/docker/config.yaml
- name: Build release artifacts
run: |
cp /zbm/etc/zfsbootmenu/dracut.conf.d/*.conf /zbm/etc/zfsbootmenu/release.conf.d/
yq-go e '.Global.DracutConfDir = "/zbm/etc/zfsbootmenu/release.conf.d"' -i /zbm/releng/docker/config.yaml
/zbm/releng/docker/zbm-build.sh -b /zbm/releng/docker -- --debug
- name: Archive release EFI
uses: actions/upload-artifact@v2
Expand All @@ -31,13 +37,15 @@ jobs:
/zbm/releng/docker/build/*
!/zbm/releng/docker/build/*.EFI
- name: Build recovery artifacts
- name: Prune release artifacts
run: |
rm /zbm/etc/zfsbootmenu/dracut.conf.d/release.conf
rm -rf /zbm/releng/docker/build/*
cp /zbm/etc/zfsbootmenu/recovery.conf.d/recovery.conf /zbm/etc/zfsbootmenu/dracut.conf.d/
echo "zfsbootmenu_module_root='/zbm/zfsbootmenu'" >> /zbm/etc/zfsbootmenu/dracut.conf.d/recovery.conf
/zbm/releng/docker/zbm-build.sh -b /zbm/releng/docker -e '.Global.DracutFlags += ["--no-early-microcode"]' -- --debug
- name: Build recovery artifacts
run: |
cp /zbm/etc/zfsbootmenu/dracut.conf.d/*.conf /zbm/etc/zfsbootmenu/recovery.conf.d/
yq-go e '.Global.DracutConfDir = "/zbm/etc/zfsbootmenu/recovery.conf.d"' -i /zbm/releng/docker/config.yaml
/zbm/releng/docker/zbm-build.sh -b /zbm/releng/docker -- --debug
- name: Archive recovery EFI
uses: actions/upload-artifact@v2
Expand Down
1 change: 1 addition & 0 deletions etc/zfsbootmenu/recovery.conf.d/common.conf
35 changes: 9 additions & 26 deletions etc/zfsbootmenu/recovery.conf.d/recovery.conf
Original file line number Diff line number Diff line change
@@ -1,29 +1,12 @@
zfsbootmenu_teardown+=" /zbm/contrib/xhci-teardown.sh "
zfsbootmenu_early_setup+=" /zbm/contrib/console-init.sh "
install_optional_items+="\
/etc/zbm-commit-hash\
/bin/gdisk\
/bin/parted\
/bin/mkfs.vfat\
/bin/mkfs.ext4\
/bin/cryptsetup\
/bin/efibootmgr\
/bin/ip\
/bin/curl\
/bin/dhclient\
/sbin/dhclient-script\
"
omit_drivers+=" amdgpu radeon nvidia nouveau i915 "
# Filesystem manipulation
install_optional_items+=" /bin/gdisk /bin/parted /bin/mkfs.vfat /bin/mkfs.ext4 "

# Network related modules
add_dracutmodules+=" kernel-network-modules qemu-net "
omit_dracutmodules+=" crypt-ssh nfs lunmask "

# qemu drivers
omit_dracutmodules+=" qemu "
# Boot manipulation
install_optional_items+=" /bin/efibootmgr "

# filesystem and other related bits
omit_dracutmodules+=" nvdimm fs-lib rootfs-block dm dmraid crypt "
# LUKS control
install_optional_items+=" /bin/cryptsetup "

embedded_kcl="rd.hostonly=0"
release_build=1
# Networking
install_optional_items+=" /bin/ip /bin/curl /bin/dhclient /sbin/dhclient-script "
add_dracutmodules+=" kernel-network-modules qemu-net "
15 changes: 15 additions & 0 deletions etc/zfsbootmenu/release.conf.d/common.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
zfsbootmenu_teardown+=" /zbm/contrib/xhci-teardown.sh "
zfsbootmenu_early_setup+=" /zbm/contrib/console-init.sh "

install_optional_items+=" /etc/zbm-commit-hash "

omit_dracutmodules+=" crypt-ssh nfs lunmask "

# qemu drivers
omit_dracutmodules+=" qemu "

# filesystem and other related bits
omit_dracutmodules+=" nvdimm fs-lib rootfs-block dm dmraid crypt "

embedded_kcl="rd.hostonly=0"
release_build=1
18 changes: 3 additions & 15 deletions etc/zfsbootmenu/release.conf.d/release.conf
Original file line number Diff line number Diff line change
@@ -1,17 +1,5 @@
zfsbootmenu_teardown+=" /zbm/contrib/xhci-teardown.sh "
zfsbootmenu_early_setup+=" /zbm/contrib/console-init.sh "
install_optional_items+=" /etc/zbm-commit-hash "
omit_drivers+=" amdgpu radeon nvidia nouveau i915 "

# Network related modules
# Network related modules are not in the regular release
omit_dracutmodules+=" network network-legacy kernel-network-modules "
omit_dracutmodules+=" crypt-ssh nfs lunmask "

# qemu drivers
omit_dracutmodules+=" qemu qemu-net "

# filesystem and other related bits
omit_dracutmodules+=" nvdimm fs-lib rootfs-block dm dmraid crypt "

embedded_kcl="rd.hostonly=0"
release_build=1
# qemu network driver
omit_dracutmodules+=" qemu-net "

0 comments on commit 10e3624

Please sign in to comment.