Skip to content

mocaccinoOS/mocaccino

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mocaccino-ci

MocaccinoOS Micro MocaccinoOS GNOME

MocaccinoOS MATE MocaccinoOS KDE

This repository contains GitHub Actions to build MocaccinoOS ISOs.

The CI will deploy from master the iso built in the mocaccino minio instance.

Flavors

Each flavor is composed by packages coming from multiple repositories, here is a short summary.

Flavor Mocaccino Micro Repository Mocaccino Extra Repository Mocaccino Desktop Repository LiveCD Repository Luet Official Repository
Micro (conf) ✔️ ✔️ ✔️ ✔️
GNOME (conf) ✔️ ✔️ ✔️
MATE (conf) ✔️ ✔️ ✔️
KDE (conf) ✔️ ✔️ ✔️
XFCE (conf) ✔️ ✔️ ✔️

ISO specs

Each ISO has a corresponding spec that defines which packages and luet repositories are required to build the ISO.

The specs are under the spec/ folder. Here is an example:

packages:
  # Packages to be installed in the rootfs
  rootfs:
  - utils/busybox 
  # Packages to be installed in the uefi image
  uefi:
  - live/systemd-boot
  - system/mocaccino-live-boot
  # Packages to be installed in the isoimage
  isoimage:
  - live/syslinux
  - system/mocaccino-live-boot
  # Packages to be installed in the initramfs
  initramfs:
  - distro/mocaccino-initramfs

# This configuration isn't necessarly required. You can also just specify the repository to be used in the luet configuration file
repository:
  packages:
  - repository/mocaccino-micro
  - repository/mocaccino-musl-universe
  initramfs:
  - repository/mocaccino-micro
  
# Optionally, you can specify initramfs/kernel and avoid generation on-the-fly
# files must be present on /boot folder in either initramfs or rootfs
initramfs:
  kernel_file: "bzImage"
  rootfs_file: "rootfs.cpio.xz"

# Use overlayfs to mount the rootfs. If disabled, only the initramfs will be booted.
overlay: "true"

# Image prefix. If Image date is disabled is used as the full title.
image_prefix: "MocaccinoOS-Micro-0."
image_date: "true"

# Luet config to use.
# It has to contain the repositories required to install the packages defined above.
luet:
  config: conf/luet-micro.yaml

Each spec defines which packages to be installed from luet repositories. A config file for each spec has to be provided and placed in conf/.

To build the iso, you need to run luet makeiso for e.g.

$> git clone https://github.com/mocaccinoOS/ci.git mocaccino-ci
$> cd mocaccino-ci
$> luet makeiso specs/micro.yaml

luet makeiso can be installed with luet install extension/makeiso after Luet official repository repositories are enabled in the system.

Local Requirements

When running it locally, you need these tools installed:

  • luet
  • luet-makeiso
  • xorriso (provided by the dev-libs/libisoburn package in Gentoo/Sabayon)
  • squashfs-tools

e.g. the CI installs them as the following:

$> sudo apt-get install -y xorriso squashfs-tools dosfstools
$> curl https://gist.githubusercontent.com/mudler/8b8d6c53c4669f4b9f9a72d1a2b92172/raw/e9d38b8e0702e7f1ef9a5db1bfa428add12a2d24/get_luet_root.sh | sudo sh
$> sudo luet install repository/mocaccino-extra
$> sudo luet install utils/jq utils/yq