From cae70ddc220cf75fab6d3c456d71c539e8067d1b Mon Sep 17 00:00:00 2001 From: "Jason N." <33561705+JasonN3@users.noreply.github.com> Date: Mon, 1 Apr 2024 15:24:31 -0400 Subject: [PATCH] stuff --- .github/workflows/bot_commands.yml | 6 ---- .github/workflows/build_container.yml | 5 --- Makefile.flatpak | 2 +- Makefile.inputs | 38 +++++++++++----------- action.yml | 46 ++++++++------------------- flatpak_refs/Makefile | 3 -- flatpaks/Makefile | 37 +++++++++++++++++++++ test/iso/Makefile | 2 +- test/vm/Makefile | 2 ++ 9 files changed, 73 insertions(+), 68 deletions(-) delete mode 100644 flatpak_refs/Makefile create mode 100644 flatpaks/Makefile diff --git a/.github/workflows/bot_commands.yml b/.github/workflows/bot_commands.yml index c6ced5d..44522d1 100644 --- a/.github/workflows/bot_commands.yml +++ b/.github/workflows/bot_commands.yml @@ -85,9 +85,6 @@ jobs: with: pr: ${{ github.event.issue.number }} parent_job_name: Run ISO Tests - iso_name-38: ${{ needs.load_vars.outputs.IMAGE_NAME }}-38.iso - iso_name-39: ${{ needs.load_vars.outputs.IMAGE_NAME }}-39.iso - iso_name-40: ${{ needs.load_vars.outputs.IMAGE_NAME }}-40.iso run_test_deployment: name: Run ISO Deployment Tests @@ -106,6 +103,3 @@ jobs: with: pr: ${{ github.event.issue.number }} parent_job_name: Run ISO Deployment Tests - iso_name-38: ${{ needs.load_vars.outputs.IMAGE_NAME }}-38.iso - iso_name-39: ${{ needs.load_vars.outputs.IMAGE_NAME }}-39.iso - iso_name-40: ${{ needs.load_vars.outputs.IMAGE_NAME }}-40.iso diff --git a/.github/workflows/build_container.yml b/.github/workflows/build_container.yml index 4d55461..00c8e5e 100644 --- a/.github/workflows/build_container.yml +++ b/.github/workflows/build_container.yml @@ -32,11 +32,6 @@ jobs: fetch-depth: 0 fetch-tags: 'true' - - name: Debug - run: | - export - set - - name: Switch branch if: inputs.pr env: diff --git a/Makefile.flatpak b/Makefile.flatpak index 6c2d0bf..ed2aeef 100644 --- a/Makefile.flatpak +++ b/Makefile.flatpak @@ -6,7 +6,7 @@ _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))) +COLLECTED_REFS = $(foreach file,$(filter-out README.md Makefile,$(wildcard $(FLATPAK_REMOTE_REFS_DIR)/*)),$(shell cat $(file))) FLATPAK_REMOTE_REFS += $(sort $(COLLECTED_REFS)) endif diff --git a/Makefile.inputs b/Makefile.inputs index 1439923..b7bdaef 100644 --- a/Makefile.inputs +++ b/Makefile.inputs @@ -1,24 +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 +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 = +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 +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 a25e4ea..da0bde9 100644 --- a/action.yml +++ b/action.yml @@ -66,6 +66,9 @@ inputs: description: "Name of the resulting ISO. Relative paths are relative to github.workspace" required: false default: build/deploy.iso + make_action: + description: "Overrides the default make action" + required: false repos: description: List of repo files for Lorax to use required: false @@ -92,11 +95,11 @@ inputs: outputs: iso_name: - value: ${{ steps.rename_iso.outputs.iso_name }} + value: ${{ steps.docker.outputs.iso_name }} description: The name of the resulting .iso iso_path: - value: ${{ steps.rename_iso.outputs.iso_path }} - description: The name and path of the resulting .iso + value: ${{ steps.docker.outputs.iso_path }} + description: The path of the resulting .iso runs: using: composite @@ -139,44 +142,18 @@ runs: id: flatpak_dependencies shell: bash run: | - image="${{ inputs.image_repo }}/${{ inputs.image_name }}:${{ inputs.image_tag }}" - # Make temp space - FLATPAK_DIR=$(basename $(mktemp -d -p ${{ github.workspace }} flatpak.XXX)) - # Get list of refs from directory - sudo mkdir /github || true - sudo ln -s ${{ github.workspace }} /github/workspace - DIR_REFS=$(cat ${{ inputs.flatpak_remote_refs_dir }}/* | tr '\n' ' ' ) - # Generate install script - cat << EOF > ${{ github.workspace }}/${FLATPAK_DIR}/script.sh - mkdir -p /flatpak/flatpak /flatpak/triggers - mkdir /var/tmp || true - chmod -R 1777 /var/tmp - flatpak config --system --set languages "*" - flatpak remote-add --system ${{ inputs.flatpak_remote_name }} ${{ inputs.flatpak_remote_url }} - flatpak install --system -y ${{ inputs.flatpak_remote_refs }} ${DIR_REFS} - ostree init --repo=/flatpak_dir/repo --mode=archive-z2 - for i in \$(ostree refs --repo=\${FLATPAK_SYSTEM_DIR}/repo | grep '^deploy/' | sed 's/^deploy\///g') - do - echo "Copying \${i}..." - ostree --repo=/flatpak_dir/repo pull-local \${FLATPAK_SYSTEM_DIR}/repo \$(ostree --repo=\${FLATPAK_SYSTEM_DIR}/repo rev-parse ${{ inputs.flatpak_remote_name }}/\${i}) - mkdir -p \$(dirname /flatpak_dir/repo/refs/heads/\${i}) - ostree --repo=\${FLATPAK_SYSTEM_DIR}/repo rev-parse ${{ inputs.flatpak_remote_name }}/\${i} > /flatpak_dir/repo/refs/heads/\${i} - done - flatpak build-update-repo /flatpak_dir/repo - ostree refs --repo=/flatpak_dir/repo - EOF - docker run --rm --privileged --entrypoint bash -e FLATPAK_SYSTEM_DIR=/flatpak/flatpak -e FLATPAK_TRIGGERSDIR=/flatpak/triggers --volume ${{ github.workspace }}/${FLATPAK_DIR}:/flatpak_dir ${image} /flatpak_dir/script.sh - echo "flatpak_dir=${FLATPAK_DIR}" >> $GITHUB_OUTPUT - docker rmi ${image} + cd ${{ github.action_path }} + make flatpaks/repo - name: Run docker image + id: docker env: ACTION_REPO: ${{ github.action_repository }} ACTION_REF: ${{ github.action_ref }} shell: bash run: | image=$(echo "ghcr.io/${ACTION_REPO}" | tr [:upper:] [:lower:]) - # Check if running inside01 of the action repo + # Check if running inside of the action repo if [[ -z "${ACTION_REPO}" ]] then image=$(echo "ghcr.io/${{ github.repository }}" | tr [:upper:] [:lower:]) @@ -208,6 +185,7 @@ runs: exit 1 fi docker run --privileged --volume ${{ github.workspace }}:/github/workspace/ ${cache} ${image}:${tag} \ + ${{ inputs.make_action }} \ ADDITIONAL_TEMPLATES="${{ inputs.additional_templates }}" \ ARCH="${{ inputs.arch }}" \ DNF_CACHE="/cache/dnf" \ @@ -225,6 +203,8 @@ runs: VARIANT="${{ inputs.variant }}" \ VERSION="${{ inputs.version }}" \ WEB_UI="${{ inputs.web_ui }}" + echo "iso_path=$(dirname ${{ inputs.iso_name }})" >> $GITHUB_OUTPUT + echo "iso_name=$(basename ${{ inputs.iso_name }})" >> $GITHUB_OUTPUT - name: Save dnf cache env: diff --git a/flatpak_refs/Makefile b/flatpak_refs/Makefile deleted file mode 100644 index e08333e..0000000 --- a/flatpak_refs/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -install-deps: - -clean: \ No newline at end of file diff --git a/flatpaks/Makefile b/flatpaks/Makefile new file mode 100644 index 0000000..a0ae11e --- /dev/null +++ b/flatpaks/Makefile @@ -0,0 +1,37 @@ +full_list: repo + cat list.txt >&2 + + +repo: script.sh + image="$(IMAGE_REPO)/$(IMAGE_NAME):$(IMAGE_TAG)" + $(if $(GITHUB_WORKSPACE),$(eval FLATPAK_DIR=$(shell mktemp -d -p $(GITHUB_WORKSPACE) flatpak.XXX),$(PWD))) + $(if $(GITHUB_WORKSPACE),cp script.sh $(GITHUB_WORKSPACE)/$(FLATPAK_DIR)/) + docker run --rm --privileged --entrypoint bash -e FLATPAK_SYSTEM_DIR=/flatpak/flatpak -e FLATPAK_TRIGGERSDIR=/flatpak/triggers --volume $(_BASE_DIR)/flatpaks:/flatpak_dir ${image} /flatpak_dir/script.sh + $(if $(GITHUB_OUTPUT),echo "flatpak_dir=$(notdir $(FLATPAK_DIR))" >> $(GITHUB_OUTPUT)) + docker rmi ${image} + +script.sh: + cat << EOF > script.sh + mkdir -p /flatpak/flatpak /flatpak/triggers + mkdir /var/tmp || true + chmod -R 1777 /var/tmp + flatpak config --system --set languages "*" + flatpak remote-add --system $(FLATPAK_REMOTE_NAME) $(FLATPAK_REMOTE_URL) + flatpak install --system -y $(FLATPAK_REMOTE_REFS) + ostree init --repo=/flatpak_dir/repo --mode=archive-z2 + for i in \$$(ostree refs --repo=\$${FLATPAK_SYSTEM_DIR}/repo | grep '^deploy/' | sed 's/^deploy\///g') + do + echo "Copying \$${i}..." + ostree --repo=/flatpak_dir/repo pull-local \$${FLATPAK_SYSTEM_DIR}/repo \$$(ostree --repo=\$${FLATPAK_SYSTEM_DIR}/repo rev-parse $(FLATPAK_REMOTE_NAME)/\$${i}) + mkdir -p \$(dirname /flatpak_dir/repo/refs/heads/\${i}) + ostree --repo=\$${FLATPAK_SYSTEM_DIR}/repo rev-parse $(FLATPAK_REMOTE_NAME)/\$${i} > /flatpak_dir/repo/refs/heads/\$${i} + done + flatpak build-update-repo /flatpak_dir/repo + ostree refs --repo=/flatpak_dir/repo > /flatpak_dir/list.txt + EOF + +install-deps: + +clean: + +.ONESHELL: \ No newline at end of file diff --git a/test/iso/Makefile b/test/iso/Makefile index 1f0fd72..95e0496 100644 --- a/test/iso/Makefile +++ b/test/iso/Makefile @@ -1,5 +1,5 @@ ISO_NAME=deploy.iso -ISO_TESTS=$(wildcard install_*) $(if $(FLATPAK_REMOTE_REFS) $(FLATPAK_DIR),$(wildcard flatpak_*)) +ISO_TESTS=$(wildcard install_*) $(if $(FLATPAK_REMOTE_REFS),$(wildcard flatpak_*))$(if $(FLATPAK_DIR),$(wildcard flatpak_*)) all: $(ISO_TESTS) clean diff --git a/test/vm/Makefile b/test/vm/Makefile index a2a37a7..6dfcd28 100644 --- a/test/vm/Makefile +++ b/test/vm/Makefile @@ -72,6 +72,8 @@ files/install.iso: files/grub.cfg -indev ../../$(ISO_NAME) -outdev files/install.iso -boot_image any replay + -joliet on + -compliance joliet_long_names -map files/ks.cfg ks.cfg -chmod 0444 ks.cfg -map files/grub.cfg boot/grub2/grub.cfg