From 4dd41315acaa07112864a3833dfb7775d9b44274 Mon Sep 17 00:00:00 2001 From: tranch Date: Fri, 24 Jul 2026 17:29:04 +0800 Subject: Rename live installer to installer ISO Use installer ISO terminology across Just, workflows, scripts, docs, and image payloads while preserving compatibility aliases for existing commands. --- .github/workflows/validate-installer-iso.yml | 40 ++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .github/workflows/validate-installer-iso.yml (limited to '.github/workflows/validate-installer-iso.yml') diff --git a/.github/workflows/validate-installer-iso.yml b/.github/workflows/validate-installer-iso.yml new file mode 100644 index 0000000..37f5496 --- /dev/null +++ b/.github/workflows/validate-installer-iso.yml @@ -0,0 +1,40 @@ +name: Validate installer ISO + +on: + pull_request: + paths: + - "Justfile" + - "installer/**" + - "just_scripts/build-installer-iso.sh" + - ".github/workflows/build-installer-iso.yml" + - ".github/workflows/validate-installer-iso.yml" + +permissions: + contents: read + +jobs: + validate-installer-iso: + name: Validate installer ISO inputs + runs-on: ubuntu-24.04 + + steps: + - name: Checkout + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 + + - name: Install just + uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3 # v4 + + - name: Validate workflow YAML + run: | + ruby -e 'require "yaml"; Dir[".github/workflows/*.yml"].each { |file| YAML.load_file(file) }' + + - name: Validate Justfile formatting + run: | + just --unstable --fmt --check -f Justfile + + - name: Validate build scripts + run: | + for script in build_files/*.sh installer/*.sh just_scripts/*.sh; do + bash -n "$script" + done + bash -n system_files/usr/libexec/aerocore-instruments-setup -- cgit v1.2.3 From 02f76b85f9ebcb198184599a6b18f5c885280a43 Mon Sep 17 00:00:00 2001 From: tranch Date: Sun, 26 Jul 2026 01:32:34 +0800 Subject: Run lightweight checks for pull requests --- .github/workflows/validate-installer-iso.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to '.github/workflows/validate-installer-iso.yml') diff --git a/.github/workflows/validate-installer-iso.yml b/.github/workflows/validate-installer-iso.yml index 37f5496..131ad5b 100644 --- a/.github/workflows/validate-installer-iso.yml +++ b/.github/workflows/validate-installer-iso.yml @@ -1,20 +1,17 @@ -name: Validate installer ISO +name: Validate pull request on: pull_request: - paths: - - "Justfile" - - "installer/**" - - "just_scripts/build-installer-iso.sh" - - ".github/workflows/build-installer-iso.yml" - - ".github/workflows/validate-installer-iso.yml" + branches: + - main + - testing permissions: contents: read jobs: - validate-installer-iso: - name: Validate installer ISO inputs + validate: + name: Run lightweight checks runs-on: ubuntu-24.04 steps: @@ -28,6 +25,9 @@ jobs: run: | ruby -e 'require "yaml"; Dir[".github/workflows/*.yml"].each { |file| YAML.load_file(file) }' + - name: Validate Just syntax + run: just check + - name: Validate Justfile formatting run: | just --unstable --fmt --check -f Justfile -- cgit v1.2.3 From 301945ffb4db538ff25cece94a66acf80223340a Mon Sep 17 00:00:00 2001 From: tranch Date: Wed, 29 Jul 2026 00:28:49 +0800 Subject: Allow live user to launch installer Authorize only the local active liveuser session for Anaconda's specific polkit action, avoiding the transient password prompt. Validate installer polkit rule syntax in the pull request workflow. --- .github/workflows/validate-installer-iso.yml | 6 ++++++ 1 file changed, 6 insertions(+) (limited to '.github/workflows/validate-installer-iso.yml') diff --git a/.github/workflows/validate-installer-iso.yml b/.github/workflows/validate-installer-iso.yml index 131ad5b..391afd8 100644 --- a/.github/workflows/validate-installer-iso.yml +++ b/.github/workflows/validate-installer-iso.yml @@ -38,3 +38,9 @@ jobs: bash -n "$script" done bash -n system_files/usr/libexec/aerocore-instruments-setup + + - name: Validate installer polkit rules + run: | + for rule in installer/system_files/overrides/etc/polkit-1/rules.d/*.rules; do + node --check < "$rule" + done -- cgit v1.2.3 From d8983c361705874558a20328ce3355852208c178 Mon Sep 17 00:00:00 2001 From: tranch Date: Wed, 29 Jul 2026 17:05:41 +0800 Subject: Fix weak password crash in Live installer Restore the Cockpit force-password behavior embedded in Fedora 43's Anaconda WebUI bundle. Apply strict password policy through conf.d so weak passwords remain a form validation error instead of aborting the installer. --- .github/workflows/validate-installer-iso.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to '.github/workflows/validate-installer-iso.yml') diff --git a/.github/workflows/validate-installer-iso.yml b/.github/workflows/validate-installer-iso.yml index 391afd8..a93e9cd 100644 --- a/.github/workflows/validate-installer-iso.yml +++ b/.github/workflows/validate-installer-iso.yml @@ -39,6 +39,17 @@ jobs: done bash -n system_files/usr/libexec/aerocore-instruments-setup + - name: Validate Anaconda WebUI patch + run: | + fixture="$(mktemp)" + trap 'rm -f "${fixture}"' EXIT + printf '%s' 'n===0?r(new Error(X2("Password is too weak"))):o(' | + gzip -n > "${fixture}" + installer/patch-anaconda-webui.sh "${fixture}" + gzip -dc "${fixture}" | + grep -Fq 'n===0&&!e?r(new Error(X2("Password is too weak"))):o(' + installer/patch-anaconda-webui.sh "${fixture}" + - name: Validate installer polkit rules run: | for rule in installer/system_files/overrides/etc/polkit-1/rules.d/*.rules; do -- cgit v1.2.3 From 80cde14b9c368f58e8f16ad121396ce2f1a50f44 Mon Sep 17 00:00:00 2001 From: tranch Date: Fri, 21 Aug 2026 08:42:38 +0800 Subject: Adapt to Bazzite 44 Update Deck identity matching for the new upstream scripts and add fixture coverage for patch idempotence. Move the live installer base to Fedora 44 while retaining the Fedora 43 Anaconda workaround for explicit legacy builds. --- .github/workflows/validate-installer-iso.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to '.github/workflows/validate-installer-iso.yml') diff --git a/.github/workflows/validate-installer-iso.yml b/.github/workflows/validate-installer-iso.yml index a93e9cd..5aa6335 100644 --- a/.github/workflows/validate-installer-iso.yml +++ b/.github/workflows/validate-installer-iso.yml @@ -34,11 +34,14 @@ jobs: - name: Validate build scripts run: | - for script in build_files/*.sh installer/*.sh just_scripts/*.sh; do + for script in build_files/*.sh installer/*.sh just_scripts/*.sh tests/*.sh; do bash -n "$script" done bash -n system_files/usr/libexec/aerocore-instruments-setup + - name: Test Bazzite Deck identity patch + run: tests/test-patch-bazzite-deck-identity.sh + - name: Validate Anaconda WebUI patch run: | fixture="$(mktemp)" -- cgit v1.2.3 From 6cb356d3837ef5a9637c2f6df1de7ef85196c280 Mon Sep 17 00:00:00 2001 From: tranch Date: Wed, 26 Aug 2026 10:41:01 +0800 Subject: fix(installer): configure the GPT auto-root type Resolve Anaconda target mounts to their backing partition before marking it as the bootc GPT auto-root partition. --- .github/workflows/validate-installer-iso.yml | 3 +++ 1 file changed, 3 insertions(+) (limited to '.github/workflows/validate-installer-iso.yml') diff --git a/.github/workflows/validate-installer-iso.yml b/.github/workflows/validate-installer-iso.yml index 5aa6335..2151a23 100644 --- a/.github/workflows/validate-installer-iso.yml +++ b/.github/workflows/validate-installer-iso.yml @@ -42,6 +42,9 @@ jobs: - name: Test Bazzite Deck identity patch run: tests/test-patch-bazzite-deck-identity.sh + - name: Test GPT root configuration + run: tests/test-configure-target-gpt-root.sh + - name: Validate Anaconda WebUI patch run: | fixture="$(mktemp)" -- cgit v1.2.3 From 10411b5e32b78f57b6ad995c434cfc4fc390d689 Mon Sep 17 00:00:00 2001 From: tranch Date: Wed, 26 Aug 2026 10:59:21 +0800 Subject: fix(config): make local dotenv optional Load a private .env when present, but keep CI configuration in GitHub runtime variables and retain the tracked template as a guide. --- .github/workflows/validate-installer-iso.yml | 3 +++ 1 file changed, 3 insertions(+) (limited to '.github/workflows/validate-installer-iso.yml') diff --git a/.github/workflows/validate-installer-iso.yml b/.github/workflows/validate-installer-iso.yml index 2151a23..466d2c4 100644 --- a/.github/workflows/validate-installer-iso.yml +++ b/.github/workflows/validate-installer-iso.yml @@ -32,6 +32,9 @@ jobs: run: | just --unstable --fmt --check -f Justfile + - name: Test dotenv precedence + run: tests/test-dotenv-precedence.sh + - name: Validate build scripts run: | for script in build_files/*.sh installer/*.sh just_scripts/*.sh tests/*.sh; do -- cgit v1.2.3 From 890d6cd86b6bc83b7960c5f54a526af2c13cb755 Mon Sep 17 00:00:00 2001 From: tranch Date: Wed, 26 Aug 2026 11:17:35 +0800 Subject: Fix CI validation environment defaults --- .github/workflows/validate-installer-iso.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to '.github/workflows/validate-installer-iso.yml') diff --git a/.github/workflows/validate-installer-iso.yml b/.github/workflows/validate-installer-iso.yml index 466d2c4..5ddf344 100644 --- a/.github/workflows/validate-installer-iso.yml +++ b/.github/workflows/validate-installer-iso.yml @@ -13,6 +13,18 @@ jobs: validate: name: Run lightweight checks runs-on: ubuntu-24.04 + # `just check` parses the whole Justfile, so provide the non-secret + # variables required by its top-level metadata declarations. This job + # does not build or publish an image; production builds use repository + # runtime variables in their respective workflows. + env: + IMAGE_NAME: aerocore-os + REPO_ORGANIZATION: aerocore-io + IMAGE_DESC: AeroCore customized Bazzite Deck image + IMAGE_KEYWORDS: bootc,oci,linux,bazzite,steam-deck,aerocore + IMAGE_LOGO_URL: https://avatars.githubusercontent.com/u/120078124?s=200&v=4 + DEFAULT_TAG: testing + BIB_IMAGE: quay.io/centos-bootc/bootc-image-builder:latest steps: - name: Checkout -- cgit v1.2.3 From cc2a2c630120627d8d89e6fec90fdeeb04ca1a51 Mon Sep 17 00:00:00 2001 From: tranch Date: Wed, 26 Aug 2026 10:41:53 +0800 Subject: fix(installer): restore interactive account setup Use an AeroCore Anaconda profile so the live installer keeps the accounts page that Fedora KDE hides. --- .github/workflows/validate-installer-iso.yml | 3 +++ 1 file changed, 3 insertions(+) (limited to '.github/workflows/validate-installer-iso.yml') diff --git a/.github/workflows/validate-installer-iso.yml b/.github/workflows/validate-installer-iso.yml index 5ddf344..d98964d 100644 --- a/.github/workflows/validate-installer-iso.yml +++ b/.github/workflows/validate-installer-iso.yml @@ -60,6 +60,9 @@ jobs: - name: Test GPT root configuration run: tests/test-configure-target-gpt-root.sh + - name: Validate AeroCore Anaconda profile + run: tests/test-aerocore-anaconda-profile.sh + - name: Validate Anaconda WebUI patch run: | fixture="$(mktemp)" -- cgit v1.2.3 From e4608f18bc3a5ad307e1a1deaa7ac0048d03f991 Mon Sep 17 00:00:00 2001 From: tranch Date: Thu, 27 Aug 2026 08:08:00 +0800 Subject: fix: replace symlinked desktop branding assets --- .github/workflows/validate-installer-iso.yml | 4 ++++ 1 file changed, 4 insertions(+) (limited to '.github/workflows/validate-installer-iso.yml') diff --git a/.github/workflows/validate-installer-iso.yml b/.github/workflows/validate-installer-iso.yml index d98964d..25d6c44 100644 --- a/.github/workflows/validate-installer-iso.yml +++ b/.github/workflows/validate-installer-iso.yml @@ -53,10 +53,14 @@ jobs: bash -n "$script" done bash -n system_files/usr/libexec/aerocore-instruments-setup + bash -n system_files/usr/libexec/aerocore-desktop-branding - name: Test Bazzite Deck identity patch run: tests/test-patch-bazzite-deck-identity.sh + - name: Test desktop branding migration + run: tests/test-desktop-branding-migration.sh + - name: Test GPT root configuration run: tests/test-configure-target-gpt-root.sh -- cgit v1.2.3 From 7889a92c2eea98189330ad1fbfbef4c33a7e3071 Mon Sep 17 00:00:00 2001 From: tranch Date: Fri, 28 Aug 2026 08:57:25 +0800 Subject: Move branding migration into user setup --- .github/workflows/validate-installer-iso.yml | 1 + 1 file changed, 1 insertion(+) (limited to '.github/workflows/validate-installer-iso.yml') diff --git a/.github/workflows/validate-installer-iso.yml b/.github/workflows/validate-installer-iso.yml index 25d6c44..3f02a76 100644 --- a/.github/workflows/validate-installer-iso.yml +++ b/.github/workflows/validate-installer-iso.yml @@ -54,6 +54,7 @@ jobs: done bash -n system_files/usr/libexec/aerocore-instruments-setup bash -n system_files/usr/libexec/aerocore-desktop-branding + bash -n system_files/usr/libexec/aerocore-desktop-branding-privileged - name: Test Bazzite Deck identity patch run: tests/test-patch-bazzite-deck-identity.sh -- cgit v1.2.3