Go to file
Robert Sturla c5f825fd3e
chore: remove ACTION_REF and ACTION_REPO action inputs (#49)
* Remove ACTION_REF and ACTION_REPO action inputs

* Remove duplicate github.

* Remove inputs from test-iso.yml workflow

* I highly doubt this will work, but let's try it anyway

* Let's try a different approach.  Don't clone the repo at all, as it should already be there.  Let's just set the working directory.

* Do not introduce a breaking change

* Say the unused variables will be removed soon
2024-02-29 19:49:22 +00:00
.devcontainer general fixes 2024-02-16 23:40:48 +00:00
.github chore: remove ACTION_REF and ACTION_REPO action inputs (#49) 2024-02-29 19:49:22 +00:00
lorax_templates feat: Add Secure Boot Support and Remove Grub Entry for Test this Media (#28) 2024-02-23 18:10:17 +00:00
scripts feat: Allow users to override secure boot key and password (#40) 2024-02-28 00:06:38 +00:00
xorriso feat: Allow users to override secure boot key and password (#40) 2024-02-28 00:06:38 +00:00
.dockerignore chore: remove dnf cache and unused files from built image (#26) 2024-02-29 19:49:12 +00:00
.gitignore general fixes 2024-02-16 23:40:48 +00:00
Containerfile chore: remove dnf cache and unused files from built image (#26) 2024-02-29 19:49:12 +00:00
LICENSE fix: Update LICENSE to Apache 2.0 2024-02-20 14:46:51 -06:00
Makefile fix: removed override language macro that sets language to english (#44) 2024-02-28 19:46:09 +00:00
README.md feat: add action outputs (#47) 2024-02-29 17:01:08 +00:00
action.yml chore: remove ACTION_REF and ACTION_REPO action inputs (#49) 2024-02-29 19:49:22 +00:00
entrypoint.sh feat: Allow users to override secure boot key and password (#40) 2024-02-28 00:06:38 +00:00

README.md

UBlueOS ISO Generator

This action is used to generate the ISO images for UBlueOS.

Makefile

A Makefile is provided for ease of use. There are separate targets for each file generated, however make can be used to generate the final image and make clean can be used to clean up the workspace.

See Customizing for information about customizing the image that gets created.

Container

A container with the necessary tools already installed is provided at ghcr.io/ublue-os/isogenerator:latest

To use the container file, run docker run --privileged --volume .:/isogenerator/output ghcr.io/ublue-os/isogenerator.

This will create an ISO with the baked in defaults of the container image.

See Customizing for information about customizing the image that gets created. The variable can either be defined as environment variables or as command arguments. Examples:

Creating Universal Blue Silverblue ISO

docker run --rm --privileged --volume .:/isogenerator/output -e VERSION=39 -e IMAGE_NAME=silverblue-main -e IMAGE_TAG=latest -e VARIANT=Silverblue ghcr.io/ublue-os/isogenerator:39
# Requires sudo to run
sudo podman run --rm --privileged --volume .:/isogenerator/output -e VERSION=39 -e IMAGE_NAME=silverblue-main -e IMAGE_TAG=latest -e VARIANT=Silverblue ghcr.io/ublue-os/isogenerator:39

Creating Universal Blue Kinoite ISO

docker run --rm --privileged --volume .:/isogenerator/output -e VERSION=39 -e IMAGE_NAME=kinoite-main -e IMAGE_TAG=latest -e VARIANT=Kinoite ghcr.io/ublue-os/isogenerator:39
# Requires sudo to run
sudo podman run --rm --privileged --volume .:/isogenerator/output -e VERSION=39 -e IMAGE_NAME=kinoite-main -e IMAGE_TAG=latest -e VARIANT=Kinoite ghcr.io/ublue-os/isogenerator:39

Customizing

Inputs

The following variables can be used to customize the create image.

Variable Description Default Value
ARCH Architecture for image to build x86_64
VERSION Fedora version of installer to build 39
IMAGE_REPO Repository containing the source container image ghcr.io/ublue-os
IMAGE_NAME Name of the source container image base-main
IMAGE_TAG Tag of the source container image VERSION
EXTRA_BOOT_PARAMS Extra params used by grub to boot the anaconda installer [empty]
VARIANT Source container variant* Kinoite
WEB_UI Enable Anaconda WebUI (experimental) false
ENROLLMENT_PASSWORD Password used to enroll secure boot key into BIOS** isogenerator
SECURE_BOOT_KEY_URL URL used to download your secure boot key for enrollment** [empty]

*Available options for VARIANT can be found by running dnf provides system-release. Variant will be the third item in the package name. Example: fedora-release-kinoite-39-34.noarch will be kinoite

**NOTE: ENROLLMENT_PASSWORD and SECURE_BOOT_KEY_URL are not required. They are only required if you are creating specific kernel modules or if you are using Universal Blue Kernel Modules.

Our public key for our kmods is located here: https://github.com/ublue-os/akmods/raw/main/certs/public_key.der

Outputs

This action outputs some useful values for you to use further on in your workflow.

Output Description
output-directory The directory containing ISO and checksum files
iso-path The full path to the ISO file
checksum-path The full path to the checksum file

VSCode Dev Container

There is a dev container configuration provided for development. By default it will use the existing container image available at ghcr.io/ublue-os/isogenerator, however, you can have it build a new image by editing .devcontainer/devcontainer.json and replacing image with build. Ctrl+/ can be used to comment and uncomment blocks of code within VSCode.

The code from VSCode will be available at /workspaces/isogenerator once the container has started.

Privileged is required for access to loop devices for lorax.

Use existing image

{
	"name": "Existing Dockerfile",
	// "build": {
	// 	"context": "..",
	// 	"dockerfile": "../Containerfile",
	// 	"args": {
	// 		"version": "39"
	// 	}
	// },
	"image": "ghcr.io/ublue-os/isogenerator:latest",
	"overrideCommand": true,
	"shutdownAction": "stopContainer",
	"privileged": true
}

Build a new image

{
	"name": "Existing Dockerfile",
	"build": {
		"context": "..",
		"dockerfile": "../Containerfile",
		"args": {
			"version": "39"
		}
	},
	//"image": "ghcr.io/ublue-os/isogenerator:latest",
	"overrideCommand": true,
	"shutdownAction": "stopContainer",
	"privileged": true
}