From 74cababd57add5f29d77b6cb696de9416dd813db Mon Sep 17 00:00:00 2001 From: "Jason N." <33561705+JasonN3@users.noreply.github.com> Date: Sat, 30 Mar 2024 20:00:12 -0400 Subject: [PATCH] split makefile more --- .vscode/settings.json | 5 ++++ Makefile | 59 ++++++++----------------------------------- Makefile.flatpak | 21 +++++++++++++++ Makefile.inputs | 24 ++++++++++++++++++ action.yml | 1 + test/vm/Makefile | 4 +-- 6 files changed, 63 insertions(+), 51 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 Makefile.flatpak create mode 100644 Makefile.inputs diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..8e97809 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "Makefile.*": "makefile" + } +} \ No newline at end of file diff --git a/Makefile b/Makefile index 51153d9..5717ee5 100644 --- a/Makefile +++ b/Makefile @@ -1,27 +1,4 @@ -# Configuration vars -## Formatting = UPPERCASE -# General -export ADDITIONAL_TEMPLATES = -export ARCH = x86_64 -export EXTRA_BOOT_PARAMS = -export IMAGE_NAME = base -export IMAGE_REPO = quay.io/fedora-ostree-desktops -export IMAGE_TAG = $(VERSION) -REPOS = $(subst :,\:,$(wildcard /etc/yum.repos.d/*.repo)) -export ROOTFS_SIZE = 4 -export VARIANT = Server -export VERSION = 39 -export WEB_UI = false -# Flatpak -export FLATPAK_REMOTE_NAME = flathub -export FLATPAK_REMOTE_URL = https://flathub.org/repo/flathub.flatpakrepo -export FLATPAK_REMOTE_REFS = -export FLATPAK_REMOTE_REFS_DIR = -export FLATPAK_DIR = -# Secure boot -export ENROLLMENT_PASSWORD = -export SECURE_BOOT_KEY_URL = -export ISO_NAME = $(_BASE_DIR)/build/deploy.iso +include Makefile.inputs ################### # Hidden vars @@ -81,27 +58,7 @@ _LORAX_TEMPLATES += $(call get_templates,cache) _TEMPLATE_VARS += DNF_CACHE endif -ifneq ($(FLATPAK_DIR),) -_FLATPAK_REPO_GPG = $(shell curl -L $(FLATPAK_REMOTE_URL) | grep -i '^GPGKey=' | cut -d= -f2) -_FLATPAK_REPO_URL = $(shell curl -L $(FLATPAK_REMOTE_URL) | grep -i '^URL=' | cut -d= -f2) -_LORAX_ARGS += -i flatpak-libs -_LORAX_TEMPLATES += $(call get_templates,flatpak) -_TEMPLATE_VARS += FLATPAK_DIR FLATPAK_REMOTE_NAME FLATPAK_REMOTE_REFS FLATPAK_REMOTE_URL _FLATPAK_REPO_GPG _FLATPAK_REPO_URL -else -ifneq ($(FLATPAK_REMOTE_REFS_DIR),) -COLLECTED_REFS = $(foreach file,$(shell ls $(FLATPAK_REMOTE_REFS_DIR)/*),$(shell cat $(file))) -FLATPAK_REMOTE_REFS += $(sort $(COLLECTED_REFS)) -endif - -ifneq ($(FLATPAK_REMOTE_REFS),) -_FLATPAK_REPO_GPG = $(shell curl -L $(FLATPAK_REMOTE_URL) | grep -i '^GPGKey=' | cut -d= -f2) -_FLATPAK_REPO_URL = $(shell curl -L $(FLATPAK_REMOTE_URL) | grep -i '^URL=' | cut -d= -f2) -_LORAX_ARGS += -i flatpak-libs -_LORAX_TEMPLATES += $(call get_templates,flatpak) \ - external/fedora-lorax-templates/ostree-based-installer/lorax-embed-flatpaks.tmpl -_TEMPLATE_VARS += FLATPAK_DIR FLATPAK_REMOTE_NAME FLATPAK_REMOTE_REFS FLATPAK_REMOTE_URL _FLATPAK_REPO_GPG _FLATPAK_REPO_URL -endif -endif +include Makefile.flatpak ifneq ($(SECURE_BOOT_KEY_URL),) @@ -111,14 +68,18 @@ endif _SUBDIRS = container external flatpak_refs lorax_templates repos xorriso test -# Step 7: Build end ISO +# Create checksum ## Default action -build/deploy.iso: results/images/boot.iso container/$(IMAGE_NAME)-$(IMAGE_TAG) xorriso/input.txt +$(ISO_NAME)-CHECKSUM: build/$(ISO_NAME) + cd build && sha256sum $(notdir $(ISO_NAME)) > $(ISO_NAME)-CHECKSUM + +# Build end ISO +$(ISO_NAME): results/images/boot.iso container/$(IMAGE_NAME)-$(IMAGE_TAG) xorriso/input.txt $(if $(wildcard build),,mkdir build) xorriso -dialog on < $(_BASE_DIR)/xorriso/input.txt - implantisomd5 $(ISO_NAME) + implantisomd5 build/$(ISO_NAME) -# Step 3: Build boot.iso using Lorax +# Build boot.iso using Lorax results/images/boot.iso: external/lorax/branch-$(VERSION) $(filter lorax_templates/%,$(_LORAX_TEMPLATES)) $(_REPO_FILES) $(if $(wildcard results), rm -Rf results) $(if $(wildcard /etc/rpm/macros.image-language-conf),mv /etc/rpm/macros.image-language-conf $(_TEMP_DIR)/macros.image-language-conf) diff --git a/Makefile.flatpak b/Makefile.flatpak new file mode 100644 index 0000000..6c2d0bf --- /dev/null +++ b/Makefile.flatpak @@ -0,0 +1,21 @@ +ifneq ($(FLATPAK_DIR),) +_FLATPAK_REPO_GPG = $(shell curl -L $(FLATPAK_REMOTE_URL) | grep -i '^GPGKey=' | cut -d= -f2) +_FLATPAK_REPO_URL = $(shell curl -L $(FLATPAK_REMOTE_URL) | grep -i '^URL=' | cut -d= -f2) +_LORAX_ARGS += -i flatpak-libs +_LORAX_TEMPLATES += $(call get_templates,flatpak) +_TEMPLATE_VARS += FLATPAK_DIR FLATPAK_REMOTE_NAME FLATPAK_REMOTE_REFS FLATPAK_REMOTE_URL _FLATPAK_REPO_GPG _FLATPAK_REPO_URL +else +ifneq ($(FLATPAK_REMOTE_REFS_DIR),) +COLLECTED_REFS = $(foreach file,$(shell ls $(FLATPAK_REMOTE_REFS_DIR)/*),$(shell cat $(file))) +FLATPAK_REMOTE_REFS += $(sort $(COLLECTED_REFS)) +endif + +ifneq ($(FLATPAK_REMOTE_REFS),) +_FLATPAK_REPO_GPG = $(shell curl -L $(FLATPAK_REMOTE_URL) | grep -i '^GPGKey=' | cut -d= -f2) +_FLATPAK_REPO_URL = $(shell curl -L $(FLATPAK_REMOTE_URL) | grep -i '^URL=' | cut -d= -f2) +_LORAX_ARGS += -i flatpak-libs +_LORAX_TEMPLATES += $(call get_templates,flatpak) \ + external/fedora-lorax-templates/ostree-based-installer/lorax-embed-flatpaks.tmpl +_TEMPLATE_VARS += FLATPAK_DIR FLATPAK_REMOTE_NAME FLATPAK_REMOTE_REFS FLATPAK_REMOTE_URL _FLATPAK_REPO_GPG _FLATPAK_REPO_URL +endif +endif \ No newline at end of file diff --git a/Makefile.inputs b/Makefile.inputs new file mode 100644 index 0000000..1439923 --- /dev/null +++ b/Makefile.inputs @@ -0,0 +1,24 @@ +# Configuration vars +## Formatting = UPPERCASE +# General +export ADDITIONAL_TEMPLATES = +export ARCH = x86_64 +export EXTRA_BOOT_PARAMS = +export IMAGE_NAME = base +export IMAGE_REPO = quay.io/fedora-ostree-desktops +export IMAGE_TAG = $(VERSION) +REPOS = $(subst :,\:,$(wildcard /etc/yum.repos.d/*.repo)) +export ROOTFS_SIZE = 4 +export VARIANT = Server +export VERSION = 39 +export WEB_UI = false +# Flatpak +export FLATPAK_REMOTE_NAME = flathub +export FLATPAK_REMOTE_URL = https://flathub.org/repo/flathub.flatpakrepo +export FLATPAK_REMOTE_REFS = +export FLATPAK_REMOTE_REFS_DIR = +export FLATPAK_DIR = +# Secure boot +export ENROLLMENT_PASSWORD = +export SECURE_BOOT_KEY_URL = +export ISO_NAME = build/deploy.iso \ No newline at end of file diff --git a/action.yml b/action.yml index 7d26e1e..7fe0c85 100644 --- a/action.yml +++ b/action.yml @@ -220,6 +220,7 @@ runs: IMAGE_NAME="${{ inputs.image_name }}" \ IMAGE_REPO="${{ inputs.image_repo }}" \ IMAGE_TAG="${{ inputs.image_tag || inputs.version }}" \ + ISO_NAME=${{ inputs.iso_name }} SECURE_BOOT_KEY_URL="${{ inputs.secure_boot_key_url }}" \ VARIANT="${{ inputs.variant }}" \ VERSION="${{ inputs.version }}" \ diff --git a/test/vm/Makefile b/test/vm/Makefile index c23477a..2be7bb3 100644 --- a/test/vm/Makefile +++ b/test/vm/Makefile @@ -83,7 +83,7 @@ files/disk.qcow2: .PHONY: install_os install_os: files/install.iso files/disk.qcow2 - timeout 1h qemu-system-x86_64 -name "Anaconda" -boot d -m 4096 -cpu qemu64 -display none -cdrom test.iso -smp 2 -hda disk.qcow2 -serial telnet:localhost:4321,server=on,wait=off & QEMU_PID=$! + timeout 1h qemu-system-x86_64 -name "Anaconda" -boot d -m 4096 -cpu qemu64 -display none -cdrom files/install.iso -smp 2 -hda files/disk.qcow2 -serial telnet:localhost:4321,server=on,wait=off & QEMU_PID=$! echo "PID: $QEMU_PID" timeout 1m bash -c "while ! (echo > /dev/tcp/127.0.0.1/4321); do sleep 0.1; done" (nc localhost 4321 | tee vm.stdout) & @@ -101,7 +101,7 @@ start_vm: install_os -netdev user,id=net0,hostfwd=tcp::${VM_PORT}-:22 \ -device virtio-serial \ -device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0 \ - -boot c -hda disk.qcow2 -serial telnet:localhost:4321,server=on,wait=off & export QEMU_PID=$! + -boot c -hda files/disk.qcow2 -serial telnet:localhost:4321,server=on,wait=off & export QEMU_PID=$! echo "PID: $QEMU_PID" timeout 1m bash -c "while ! (echo > /dev/tcp/127.0.0.1/4321); do sleep 0.1; done"