1
0
Fork 0
mirror of https://github.com/JasonN3/build-container-installer.git synced 2025-12-25 02:47:56 +01:00

Compare commits

...

12 commits
v1.2.4 ... main

Author SHA1 Message Date
dependabot[bot]
4ab1e18f83
Bump actions/checkout from 4 to 5 (#171)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jason Nagin <33561705+JasonN3@users.noreply.github.com>
2025-10-31 19:26:02 -04:00
Jason Nagin
c9ef3de332
Upgrade base image to 42 (#176) 2025-10-08 13:04:06 -04:00
Jason Nagin
e310904cc7
Fix documentation about iso_path (#177) 2025-10-08 11:41:09 -04:00
Jason Nagin
33d0e5a5c2
Add tests for Fedora 43 (#175) 2025-10-05 18:58:17 -04:00
dependabot[bot]
3b090e7c2e
Bump sigstore/cosign-installer from 3.8.2 to 3.10.0 (#173)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-05 18:33:45 -04:00
dependabot[bot]
6810b148ad
Bump docker/login-action from 3.4.0 to 3.6.0 (#174)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-05 18:24:07 -04:00
dependabot[bot]
d77e956373
Bump sigstore/cosign-installer from 3.7.0 to 3.8.2 (#162)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jason Nagin <33561705+JasonN3@users.noreply.github.com>
2025-05-05 20:44:40 -04:00
dependabot[bot]
91208e0329
Bump docker/login-action from 3.3.0 to 3.4.0 (#160)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jason Nagin <33561705+JasonN3@users.noreply.github.com>
2025-05-05 18:44:24 -04:00
Noel Miller
45fec1fc9d
Add tests for 42 (#161)
Co-authored-by: Jason N. <33561705+JasonN3@users.noreply.github.com>
2025-05-05 17:07:08 -04:00
RoyalOughtness
d2186329e4
fix: typo (#156) 2025-02-03 09:32:53 -05:00
Jason Nagin
46786df344
Test with base Fedora images (#155) 2025-01-08 10:39:29 -05:00
Jason Nagin
362fea7d5d
Block broken lorax versions (#152) 2025-01-02 09:02:24 -05:00
17 changed files with 97 additions and 56 deletions

View file

@ -26,7 +26,7 @@ jobs:
statuses: write
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
submodules: recursive
fetch-depth: 0
@ -97,7 +97,7 @@ jobs:
labels: ${{ steps.meta.outputs.labels || steps.meta_pr.outputs.labels }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.3.0
uses: docker/login-action@v3.6.0
with:
registry: ghcr.io
username: ${{ github.actor }}
@ -123,7 +123,7 @@ jobs:
- name: Install Cosign
if: startsWith(github.ref, 'refs/tags/v')
uses: sigstore/cosign-installer@v3.7.0
uses: sigstore/cosign-installer@v3.10.0
- name: Sign the images
if: startsWith(github.ref, 'refs/tags/v')

View file

@ -32,7 +32,7 @@ jobs:
matrix: ${{ fromJson(needs.load_vars.outputs.BUILD_MATRIX) }}
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
submodules: recursive
@ -53,7 +53,7 @@ jobs:
id: jobs
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
job_name: "${{ inputs.parent_job_name }} / ${{ env.JOB_NAME }} (${{ matrix.version }}, ${{ matrix.flatpaks }})"
job_name: "${{ inputs.parent_job_name }} / ${{ env.JOB_NAME }} (${{ matrix.version }}, ${{ matrix.flatpaks }}, ${{ matrix.image_repo }})"
per_page: 100
- name: Set status
@ -62,7 +62,7 @@ jobs:
with:
token: ${{ secrets.GITHUB_TOKEN }}
status: pending
context: "${{ inputs.parent_job_name }} / ${{ env.JOB_NAME }} (${{ matrix.version }}, ${{ matrix.flatpaks }})"
context: "${{ inputs.parent_job_name }} / ${{ env.JOB_NAME }} (${{ matrix.version }}, ${{ matrix.flatpaks }}, ${{ matrix.image_repo }})"
sha: ${{ env.sha }}
targetUrl: ${{ steps.jobs.outputs.html_url }}
@ -138,7 +138,7 @@ jobs:
with:
token: ${{ secrets.GITHUB_TOKEN }}
status: ${{ job.status }}
context: "${{ inputs.parent_job_name }} / ${{ env.JOB_NAME }} (${{ matrix.version }}, ${{ matrix.flatpaks }})"
context: "${{ inputs.parent_job_name }} / ${{ env.JOB_NAME }} (${{ matrix.version }}, ${{ matrix.flatpaks }}, ${{ matrix.image_repo }})"
sha: ${{ env.sha }}
targetUrl: ${{ steps.jobs.outputs.html_url }}

View file

@ -9,9 +9,9 @@ on:
value: '
{
"version": [
"39",
"40",
"41"
"41",
"42",
"43"
],
"flatpaks": [
"false",
@ -19,10 +19,45 @@ on:
"flatpak_refs"
],
"image_repo": [
"ghcr.io/ublue-os"
"ghcr.io/ublue-os",
"quay.io/fedora",
"quay.io/fedora-ostree-desktops"
],
"image_name": [
"base-main"
"include": [
{
"image_repo": "ghcr.io/ublue-os",
"image_name": "base-main",
},
{
"image_repo": "quay.io/fedora",
"image_name": "fedora-bootc"
},
{
"image_repo": "quay.io/fedora-ostree-desktops",
"image_name": "base-atomic"
}
],
"exclude": [
{
"image_repo": "quay.io/fedora",
"flatpaks": "flatpak_refs_dir"
},
{
"image_repo": "quay.io/fedora",
"flatpaks": "flatpak_refs"
},
{
"image_repo": "quay.io/fedora-ostree-desktops",
"flatpaks": "flatpak_refs_dir"
},
{
"image_repo": "quay.io/fedora-ostree-desktops",
"flatpaks": "flatpak_refs"
},
{
"image_repo": "ghcr.io/ublue-os",
"version": "43"
}
]
}'
VARIANT:

View file

@ -31,7 +31,7 @@ jobs:
matrix: ${{ fromJson(needs.load_vars.outputs.BUILD_MATRIX) }}
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
submodules: recursive
@ -52,7 +52,7 @@ jobs:
id: jobs
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
job_name: "${{ inputs.parent_job_name }} / ${{ env.JOB_NAME }} (${{ matrix.version }}, ${{ matrix.flatpaks }})"
job_name: "${{ inputs.parent_job_name }} / ${{ env.JOB_NAME }} (${{ matrix.version }}, ${{ matrix.flatpaks }}, ${{ matrix.image_repo }})"
per_page: 100
- name: Set status
@ -61,7 +61,7 @@ jobs:
with:
token: ${{ secrets.GITHUB_TOKEN }}
status: pending
context: "${{ inputs.parent_job_name }} / ${{ env.JOB_NAME }} (${{ matrix.version }}, ${{ matrix.flatpaks }})"
context: "${{ inputs.parent_job_name }} / ${{ env.JOB_NAME }} (${{ matrix.version }}, ${{ matrix.flatpaks }}, ${{ matrix.image_repo }})"
sha: ${{ env.sha }}
targetUrl: ${{ steps.jobs.outputs.html_url }}
@ -107,6 +107,6 @@ jobs:
with:
token: ${{ secrets.GITHUB_TOKEN }}
status: ${{ job.status }}
context: "${{ inputs.parent_job_name }} / ${{ env.JOB_NAME }} (${{ matrix.version }}, ${{ matrix.flatpaks }})"
context: "${{ inputs.parent_job_name }} / ${{ env.JOB_NAME }} (${{ matrix.version }}, ${{ matrix.flatpaks }}, ${{ matrix.image_repo }})"
sha: ${{ env.sha }}
targetUrl: ${{ steps.jobs.outputs.html_url }}

View file

@ -31,7 +31,7 @@ jobs:
matrix: ${{ fromJson(needs.load_vars.outputs.BUILD_MATRIX) }}
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
submodules: recursive
@ -52,7 +52,7 @@ jobs:
id: jobs
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
job_name: "${{ inputs.parent_job_name }} / ${{ env.JOB_NAME }} (${{ matrix.version }}, ${{ matrix.flatpaks }})"
job_name: "${{ inputs.parent_job_name }} / ${{ env.JOB_NAME }} (${{ matrix.version }}, ${{ matrix.flatpaks }}, ${{ matrix.image_repo }})"
per_page: 100
- name: Set status
@ -61,7 +61,7 @@ jobs:
with:
token: ${{ secrets.GITHUB_TOKEN }}
status: pending
context: "${{ inputs.parent_job_name }} / ${{ env.JOB_NAME }} (${{ matrix.version }}, ${{ matrix.flatpaks }})"
context: "${{ inputs.parent_job_name }} / ${{ env.JOB_NAME }} (${{ matrix.version }}, ${{ matrix.flatpaks }}, ${{ matrix.image_repo }})"
sha: ${{ env.sha }}
targetUrl: ${{ steps.jobs.outputs.html_url }}
@ -98,6 +98,6 @@ jobs:
with:
token: ${{ secrets.GITHUB_TOKEN }}
status: ${{ job.status }}
context: "${{ inputs.parent_job_name }} / ${{ env.JOB_NAME }} (${{ matrix.version }}, ${{ matrix.flatpaks }})"
context: "${{ inputs.parent_job_name }} / ${{ env.JOB_NAME }} (${{ matrix.version }}, ${{ matrix.flatpaks }}, ${{ matrix.image_repo }})"
sha: ${{ env.sha }}
targetUrl: ${{ steps.jobs.outputs.html_url }}
targetUrl: ${{ steps.jobs.outputs.html_url }}

View file

@ -20,7 +20,7 @@ jobs:
contents: read
steps:
- name: Checkout repo
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: Run test
run: |

View file

@ -18,10 +18,10 @@ jobs:
run: |
sudo apt install -y make rsync
# Checkout Main Repo
- uses: actions/checkout@v4
- uses: actions/checkout@v5
# Checkout Wiki Repo
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
repository: ${{github.repository}}.wiki
persist-credentials: true

View file

@ -1,6 +1,6 @@
FROM fedora:40
FROM fedora:42
ARG VERSION=39
ARG VERSION=42
ENV ARCH="x86_64"
ENV IMAGE_NAME="base"

View file

@ -27,7 +27,7 @@ export install_pkg
_IMAGE_REPO_ESCAPED := $(subst /,\/,$(IMAGE_REPO))
_IMAGE_REPO_DOUBLE_ESCAPED := $(subst \,\\\,$(_IMAGE_REPO_ESCAPED))
_LORAX_ARGS :=
_LORAX_TEMPLATES := $(call get_templates,install)
export _LORAX_TEMPLATES := $(call get_templates,install) lorax_templates/install_include_post.tmpl
_REPO_FILES := $(subst /etc/yum.repos.d,repos,$(REPOS))
_TEMP_DIR := $(shell mktemp -d)
_TEMPLATE_VARS := ARCH IMAGE_NAME IMAGE_REPO _IMAGE_REPO_DOUBLE_ESCAPED _IMAGE_REPO_ESCAPED IMAGE_SIGNED IMAGE_TAG REPOS _RHEL VARIANT VERSION WEB_UI
@ -35,7 +35,7 @@ _VOLID := $(firstword $(subst -, ,$(IMAGE_NAME)))-$(ARCH)-$(
ifeq ($(findstring redhat.repo,$(REPOS)),redhat.repo)
export _RHEL := true
_LORAX_TEMPLATES += $(call get_templates,rhel)
export _LORAX_TEMPLATES += $(call get_templates,rhel)
else
undefine _RHEL
endif
@ -53,17 +53,17 @@ _LORAX_ARGS += -i anaconda-webui
endif
ifneq ($(DNF_CACHE),)
_LORAX_ARGS += --cachedir $(DNF_CACHE)
_LORAX_TEMPLATES += $(call get_templates,cache)
_TEMPLATE_VARS += DNF_CACHE
_LORAX_ARGS += --cachedir $(DNF_CACHE)
export _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_GPG := $(shell curl -L $(FLATPAK_REMOTE_URL) | grep -i '^GPGKey=' | cut -d= -f2)
export _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
_LORAX_ARGS += -i flatpak-libs
export _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,$(filter-out README.md Makefile,$(wildcard $(FLATPAK_REMOTE_REFS_DIR)/*)),$(shell cat $(file)))
@ -71,19 +71,19 @@ export 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_GPG := $(shell curl -L $(FLATPAK_REMOTE_URL) | grep -i '^GPGKey=' | cut -d= -f2)
export _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
_LORAX_ARGS += -i flatpak-libs
export _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
ifneq ($(SECURE_BOOT_KEY_URL),)
_LORAX_TEMPLATES += $(call get_templates,secureboot)
_TEMPLATE_VARS += ENROLLMENT_PASSWORD
export _LORAX_TEMPLATES += $(call get_templates,secureboot)
_TEMPLATE_VARS += ENROLLMENT_PASSWORD
endif
_SUBDIRS := container external flatpak_refs lorax_templates repos xorriso test

View file

@ -29,8 +29,8 @@ This action is designed to be called from a GitHub workflow using the following
with:
name: ${{ steps.build.outputs.iso_name }}
path: |
${{ steps.build.outputs.iso_path }}
${{ steps.build.outputs.iso_path }}-CHECKSUM
${{ steps.build.outputs.iso_path }}/${{ steps.build.outputs.iso_name }}
${{ steps.build.outputs.iso_path }}/${{ steps.build.outputs.iso_name }}-CHECKSUM
if-no-files-found: error
retention-days: 0
compression-level: 0

View file

@ -89,7 +89,7 @@ inputs:
description: Overrides the skopeo cache key
required: false
variant:
description: "Source container variant. Available options 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 kinonite"
description: "Source container variant. Available options 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"
required: true
default: Server
version:

View file

@ -1,4 +1,5 @@
- [Home](home.md)
- [Usage](usage.md)
- Development
- [Using the Makefile](development/makefile.md)
- [Using the Container](development/container.md)
@ -7,4 +8,4 @@
- Examples
- [Adding Flatpaks](examples/adding-flatpaks.md)
- [Known Errors](known_errors.md)
- [Known Errors](known_errors.md)

View file

@ -2,6 +2,7 @@ Welcome to the build-container-installer wiki!
## Index
- [Usage](usage.md)
- Development
- [Using the Makefile](development/makefile.md)
- [Using the Container](development/container.md)
@ -10,4 +11,4 @@ Welcome to the build-container-installer wiki!
- Examples
- [Adding Flatpaks](examples/adding-flatpaks.md)
- [Known Errors](known_errors.md)
- [Known Errors](known_errors.md)

View file

@ -22,8 +22,8 @@ This action is designed to be called from a GitHub workflow using the following
with:
name: ${{ steps.build.outputs.iso_name }}
path: |
${{ steps.build.outputs.iso_path }}
${{ steps.build.outputs.iso_path }}-CHECKSUM
${{ steps.build.outputs.iso_path }}/${{ steps.build.outputs.iso_name }}
${{ steps.build.outputs.iso_path }}/${{ steps.build.outputs.iso_name }}-CHECKSUM
if-no-files-found: error
retention-days: 0
compression-level: 0
@ -65,4 +65,4 @@ Variant will be the third item in the package name. Example: `fedora-release-kin
| Variable | Description | Usage |
| -------- | ----------------------------------------| ------------------------------------------------ |
| iso_name | The name of the resulting .iso | ${{ steps.YOUR_ID_FOR_ACTION.outputs.iso_name }} |
| iso_path | The name and path of the resulting .iso | ${{ steps.YOUR_ID_FOR_ACTION.outputs.iso_name }} |
| iso_path | The path to the resulting .iso | ${{ steps.YOUR_ID_FOR_ACTION.outputs.iso_path }} |

2
external/Makefile vendored
View file

@ -1,6 +1,6 @@
lorax/branch-$(VERSION):
git config advice.detachedHead false
cd lorax && git reset --hard HEAD && git checkout $(if $(_RHEL),rhel$(word 1,$(subst ., ,$(VERSION)))-branch,tags/$(shell cd lorax && git tag -l lorax-$(VERSION).* --sort=creatordate | tail -n 1))
cd lorax && git reset --hard HEAD && git checkout $(if $(_RHEL),rhel$(word 1,$(subst ., ,$(VERSION)))-branch,tags/$(shell cd lorax && git tag -l lorax-$(VERSION).* --sort=creatordate | grep -v 'lorax-40\.5' | tail -n 1))
touch lorax/branch-$(VERSION)
install-deps:

View file

@ -39,10 +39,14 @@ endef
post_%.tmpl: scripts/post/%
$(call convert_post_to_tmpl,$*,usr/share/anaconda/post-scripts/$*.ks,true)
install_include_post.tmpl:
echo '<%page />' > install_include_post.tmpl
for file in $(patsubst post_%.tmpl, %, $(filter post_%, $(notdir $(_LORAX_TEMPLATES)))); do echo "append usr/share/anaconda/interactive-defaults.ks \"%include /usr/share/anaconda/post-scripts/$${file}.ks\"" >> install_include_post.tmpl; done
install-deps:
FILES=$(wildcard post_*)
FILES=$(wildcard post_*) install_include_post.tmpl
clean:
ifneq ($(FILES),)
rm -Rf $(FILES)
endif
endif

View file

@ -24,7 +24,7 @@ ansible_inventory:
.PHONY: $(VM_TESTS) install-deps
install-deps:
$(install_pkg) qemu qemu-utils xorriso qemu-system-x86 netcat socat jq ansible curl
$(install_pkg) qemu-system qemu-utils xorriso qemu-system-x86 ncat socat jq ansible curl
files/mnt/iso:
$(if $(wildcard files/mnt),,mkdir files/mnt)
@ -97,4 +97,4 @@ start_vm: install_os
fi
echo "VM ready for tests at IP $(VM_IP):$(VM_PORT)"
echo $$QEMU_PID > start_vm
echo $$QEMU_PID > start_vm