Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
a3be9b5
update
vinceaperri Apr 22, 2026
421b593
Add test_create_image_efi_qcow_output_azl4 and azl4 test cases for:
vinceaperri Apr 21, 2026
65e7a90
fix: Remove unecessary efibootmgr, initial-setup as they aren't avail…
vinceaperri Apr 21, 2026
b0858bb
fix create image tests
vinceaperri Apr 21, 2026
c6befc6
fix: create tests
vinceaperri Apr 21, 2026
1b78b1d
No longer skip TestCustomizeImageOverlaysSELinux/AzureLinux3CoreEfi
vinceaperri Apr 21, 2026
7b44726
Use wget instead of unzip in tests since azl4 has unzip installed
vinceaperri Apr 22, 2026
d3eec47
Add 'Patch ukify (AZL3)' step to fix ukify for TestCustomizeImageVeri…
vinceaperri Apr 22, 2026
32d7639
fix kernel command line parsing for BLS
vinceaperri Apr 22, 2026
0cf5791
fix: metadata_csum_seed is default in azl4, add a min supported versi…
vinceaperri Apr 22, 2026
a48e8f0
fix ext4FeaturesKernelSupport format
vinceaperri Apr 22, 2026
1cef142
fix: no space left on device errors
vinceaperri Apr 22, 2026
2bc4309
fix: null pointer dereference in TestCustomizeImagePackagesUpdateAfte…
vinceaperri Apr 22, 2026
5b93057
Add azl4 test variants for all osmodifier vm tests
vinceaperri Apr 23, 2026
cda7dc2
Add test_json_logs_nochange_azl4 vm test
vinceaperri Apr 23, 2026
538d532
Add distrohandler->ReadGrubConfigLinuxArgs, ReadKernelCmdlines, and R…
vinceaperri Apr 23, 2026
45c85dd
fix uki and verity tests
vinceaperri Apr 23, 2026
3705078
fix osmodifier is_package_installed
vinceaperri Apr 23, 2026
807f399
Add azl4 to defaultAzureLinuxPriorityList
vinceaperri Apr 23, 2026
1550359
fix osmodifier/conftest.py type checking
vinceaperri Apr 23, 2026
d0d3d0b
Fix azl4 in TestCustomizeImageLiveOSIsoNoGrubEfi
vinceaperri Apr 23, 2026
2372f58
Add distrohandler functions:
vinceaperri Apr 23, 2026
ff6193d
fix tests
vinceaperri Apr 23, 2026
c6f4fb6
Add BootExt4 filesystem options for building AZL4 on AZL3
vinceaperri Apr 23, 2026
f1fc3aa
Revert "Use wget instead of unzip in tests since azl4 has unzip insta…
vinceaperri Apr 23, 2026
692f6e7
Use jq (not unzip) as the test missing package for azl4
vinceaperri Apr 23, 2026
a8b0a33
fix osmodifier test_user_creation_config
vinceaperri Apr 24, 2026
d9d9aac
fix packagesAddConfigFile()
vinceaperri Apr 24, 2026
e6007c2
fix packagesUpdateConfigFile() not supporting ubuntu
vinceaperri Apr 24, 2026
1829fe9
fix: missing tree in tests
vinceaperri Apr 24, 2026
c7fb787
Fix distrohandler detected when already known in connectToExistingIma…
vinceaperri Apr 24, 2026
80981b2
Fix azl4 --rpm-sources and --tools-file not being passed to imagecust…
vinceaperri Apr 24, 2026
03fb3e5
optimize distrohandler creation in customizePartitions() path
vinceaperri Apr 24, 2026
c3bcfd3
fix formatting and ensurePackageCacheCleanup() on azl4
vinceaperri Apr 24, 2026
fac5da7
fix TestBaseConfigsFullRun() for azl4
vinceaperri Apr 24, 2026
0f4b5ed
fix updateGrubCfgForLiveOS() calls
vinceaperri Apr 24, 2026
4c66c18
fix alpha2 kernel package versions and disable multikernel test
vinceaperri Apr 24, 2026
2cb7dc7
fix azl4 TestCustomizeImageOverlays()
vinceaperri Apr 24, 2026
0afc925
fix azl4 TestCustomizeImagePackagesDiskSpace
vinceaperri Apr 24, 2026
a7370e6
fix TestCustomizeImagePackagesRemove for azl4
vinceaperri Apr 24, 2026
aa10986
fix grub2-efi-x64 and grub2-efi-aa64 removal for azl4
vinceaperri Apr 24, 2026
44525ad
fix TestCustomizeImageLiveOSIsoNoGrubEfi for azl4
vinceaperri Apr 24, 2026
af70a4a
Add bootcustomizer tests for azl4
vinceaperri Apr 24, 2026
6f55d73
Mark ISO and PXE-DIR/TAR formats as not supported by AZL4
vinceaperri Apr 25, 2026
c7eda35
fix: Also check systemd-boot presence in azl4, for future-compatibility
vinceaperri Apr 25, 2026
61f4e7d
fix: update distro support
vinceaperri Apr 25, 2026
1cb3b67
fix: Always initialize distroHandler in customizeOSContents()
vinceaperri Apr 27, 2026
7307ea4
fix TestCustomizeImagePackagesInstallOnline for Ubuntu
vinceaperri Apr 28, 2026
9e5289e
fix: Defer to /etc/selinux/config when parameters are not present in …
vinceaperri Apr 28, 2026
574801a
Skip test_min_change_efi_azl4_iso_bootstrap_output and test_min_chang…
vinceaperri Apr 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 64 additions & 12 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,51 +45,103 @@ jobs:
permissions:
contents: read

tests-functional-azl-on-azl3-amd64:
name: Functional tests AZL on AZL3 AMD64
tests-functional-azl3-on-azl3-amd64:
name: Functional tests AZL3 on AZL3 AMD64
if: ${{ inputs.runFunctionalTests }}
uses: ./.github/workflows/tests-functional.yml
with:
testDistro: azl
testDistro: azl3
hostDistro: azl3
hostArch: amd64
permissions:
contents: read
# Azure login.
id-token: write

tests-functional-azl-on-azl3-arm64:
name: Functional tests AZL on AZL3 ARM64
tests-functional-azl4-on-azl3-amd64:
name: Functional tests AZL4 on AZL3 AMD64
if: ${{ inputs.runFunctionalTests }}
uses: ./.github/workflows/tests-functional.yml
with:
testDistro: azl
testDistro: azl4
hostDistro: azl3
hostArch: amd64
permissions:
contents: read
# Azure login.
id-token: write

tests-functional-azl3-on-azl3-arm64:
name: Functional tests AZL3 on AZL3 ARM64
if: ${{ inputs.runFunctionalTests }}
uses: ./.github/workflows/tests-functional.yml
with:
testDistro: azl3
hostDistro: azl3
hostArch: arm64
permissions:
contents: read
# Azure login.
id-token: write

tests-functional-azl4-on-azl3-arm64:
name: Functional tests AZL4 on AZL3 ARM64
if: ${{ inputs.runFunctionalTests }}
uses: ./.github/workflows/tests-functional.yml
with:
testDistro: azl4
hostDistro: azl3
hostArch: arm64
permissions:
contents: read
# Azure login.
id-token: write

tests-functional-azl-on-ubuntu2404-amd64:
name: Functional tests AZL on Ubuntu24.04 AMD64
tests-functional-azl3-on-ubuntu2404-amd64:
name: Functional tests AZL3 on Ubuntu24.04 AMD64
if: ${{ inputs.runFunctionalTests }}
uses: ./.github/workflows/tests-functional.yml
with:
testDistro: azl
testDistro: azl3
hostDistro: ubuntu2404
hostArch: amd64
permissions:
contents: read
# Azure login.
id-token: write

tests-functional-azl-on-ubuntu2404-arm64:
name: Functional tests AZL on Ubuntu24.04 ARM64
tests-functional-azl4-on-ubuntu2404-amd64:
name: Functional tests AZL4 on Ubuntu24.04 AMD64
if: ${{ inputs.runFunctionalTests }}
uses: ./.github/workflows/tests-functional.yml
with:
testDistro: azl4
hostDistro: ubuntu2404
hostArch: amd64
permissions:
contents: read
# Azure login.
id-token: write

tests-functional-azl3-on-ubuntu2404-arm64:
name: Functional tests AZL3 on Ubuntu24.04 ARM64
if: ${{ inputs.runFunctionalTests }}
uses: ./.github/workflows/tests-functional.yml
with:
testDistro: azl3
hostDistro: ubuntu2404
hostArch: arm64
permissions:
contents: read
# Azure login.
id-token: write

tests-functional-azl4-on-ubuntu2404-arm64:
name: Functional tests AZL4 on Ubuntu24.04 ARM64
if: ${{ inputs.runFunctionalTests }}
uses: ./.github/workflows/tests-functional.yml
with:
testDistro: azl
testDistro: azl4
hostDistro: ubuntu2404
hostArch: arm64
permissions:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
From c66a29f6f7b070bc653bce88e14fc5296e226768 Mon Sep 17 00:00:00 2001
From: Vince Perri <5596945+vinceaperri@users.noreply.github.com>
Date: Tue, 21 Apr 2026 22:46:42 +0000
Subject: [PATCH] ukify: fix insertion of padding in merged sections

Original patch:
https://github.com/systemd/systemd/commit/ec1d031f3de02f84beca89e2b402d085fba62be4

---
ukify | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/ukify b/ukify
index 7f9d6e6..232ebe4 100755
--- a/ukify
+++ b/ukify
@@ -618,9 +618,8 @@ def pe_add_sections(uki: UKI, output: str):
if new_section.Misc_VirtualSize > s.SizeOfRawData:
raise PEError(f'Not enough space in existing section {section.name} to append new data.')

- padding = bytes(new_section.SizeOfRawData - new_section.Misc_VirtualSize)
+ padding = bytes(s.SizeOfRawData - new_section.Misc_VirtualSize)
pe.__data__ = pe.__data__[:s.PointerToRawData] + data + padding + pe.__data__[pe.sections[i+1].PointerToRawData:]
- s.SizeOfRawData = new_section.SizeOfRawData
s.Misc_VirtualSize = new_section.Misc_VirtualSize
break
else:
--
2.45.4

22 changes: 19 additions & 3 deletions .github/workflows/tests-functional.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,14 @@ jobs:
env:
HOST_ARCH: ${{ inputs.hostArch }}

- name: Patch ukify (AZL3)
if: inputs.hostDistro == 'azl3'
run: |
set -eux

UKIFY_PATH=$(which ukify)
sudo patch "$UKIFY_PATH" ./repo/.github/workflows/scripts/ukify-fix-insertion-of-padding-in-merged-sections.patch

- name: Install prerequisites (Ubuntu 24.04)
if: inputs.hostDistro == 'ubuntu2404'
run: |
Expand Down Expand Up @@ -98,9 +106,11 @@ jobs:
./repo/.github/workflows/scripts/download-image.sh "$AZURE_STORAGE" "$AZURE_CONTAINER" "$1" "$2"
}

if [[ "$TEST_DISTRO" == "azl" ]]; then
if [[ "$TEST_DISTRO" == "azl3" ]]; then
download "azure-linux/core-efi-vhdx-2.0-$HOST_ARCH" azl-core-efi-2.0
download "azure-linux/core-efi-vhdx-3.0-$HOST_ARCH" azl-core-efi-3.0
elif [[ "$TEST_DISTRO" == "azl4" ]]; then
download "azure-linux/core-efi-vhdx-4.0-$HOST_ARCH" azl-core-efi-4.0
elif [[ "$TEST_DISTRO" == "ubuntu" ]]; then
download "ubuntu/azure-cloud-vhdx-22.04-$HOST_ARCH" ubuntu-azure-cloud-22.04
download "ubuntu/azure-cloud-vhdx-24.04-$HOST_ARCH" ubuntu-azure-cloud-24.04
Expand All @@ -118,8 +128,10 @@ jobs:
run: |
set -eux
pushd repo/toolkit/tools
if [[ "$TEST_DISTRO" == "azl" ]]; then
if [[ "$TEST_DISTRO" == "azl3" ]]; then
./internal/testutils/testrpms/download-test-utils.sh -d azurelinux -t 3.0 -s true
elif [[ "$TEST_DISTRO" == "azl4" ]]; then
./internal/testutils/testrpms/download-test-utils.sh -d azurelinux -t 4.0 -s true
elif [[ "$TEST_DISTRO" == "ubuntu" ]]; then
echo "No test utils needed for Ubuntu tests"
else
Expand All @@ -137,12 +149,15 @@ jobs:

AZL2_VHDX=""
AZL3_VHDX=""
AZL4_VHDX=""
UBUNTU2204_VHDX=""
UBUNTU2404_VHDX=""

if [[ "$TEST_DISTRO" == "azl" ]]; then
if [[ "$TEST_DISTRO" == "azl3" ]]; then
AZL2_VHDX="../../../../../azl-core-efi-2.0/image.vhdx"
AZL3_VHDX="../../../../../azl-core-efi-3.0/image.vhdx"
elif [[ "$TEST_DISTRO" == "azl4" ]]; then
AZL4_VHDX="../../../../../azl-core-efi-4.0/image.vhdx"
elif [[ "$TEST_DISTRO" == "ubuntu" ]]; then
UBUNTU2204_VHDX="../../../../../ubuntu-azure-cloud-22.04/image.vhdx"
UBUNTU2404_VHDX="../../../../../ubuntu-azure-cloud-24.04/image.vhdx"
Expand All @@ -161,6 +176,7 @@ jobs:
-args \
--base-image-core-efi-azl2 "$AZL2_VHDX" \
--base-image-core-efi-azl3 "$AZL3_VHDX" \
--base-image-core-efi-azl4 "$AZL4_VHDX" \
--base-image-azure-cloud-ubuntu2204 "$UBUNTU2204_VHDX" \
--base-image-azure-cloud-ubuntu2404 "$UBUNTU2404_VHDX" \
2>&1 \
Expand Down
24 changes: 24 additions & 0 deletions .github/workflows/tests-vmtests-osmodifier.yml
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ jobs:

./repo/.github/workflows/scripts/download-image.sh "$AZURE_STORAGE" "$AZURE_CONTAINER" "azure-linux/core-efi-vhdx-2.0-$HOST_ARCH" azl-core-efi-2.0
./repo/.github/workflows/scripts/download-image.sh "$AZURE_STORAGE" "$AZURE_CONTAINER" "azure-linux/core-efi-vhdx-3.0-$HOST_ARCH" azl-core-efi-3.0
./repo/.github/workflows/scripts/download-image.sh "$AZURE_STORAGE" "$AZURE_CONTAINER" "azure-linux/core-efi-vhdx-4.0-$HOST_ARCH" azl-core-efi-4.0
env:
HOST_ARCH: ${{ inputs.hostArch }}
AZURE_STORAGE: ${{ vars.AZURE_STORAGE }}
Expand All @@ -136,9 +137,11 @@ jobs:

AZL2_IMAGE="../../../azl-core-efi-2.0/image.vhdx"
AZL3_IMAGE="../../../azl-core-efi-3.0/image.vhdx"
AZL4_IMAGE="../../../azl-core-efi-4.0/image.vhdx"

echo "azl2_path=$AZL2_IMAGE" >> "$GITHUB_OUTPUT"
echo "azl3_path=$AZL3_IMAGE" >> "$GITHUB_OUTPUT"
echo "azl4_path=$AZL4_IMAGE" >> "$GITHUB_OUTPUT"

- name: Test setup
run: |
Expand All @@ -165,6 +168,8 @@ jobs:
IMAGE_CUSTOMIZER_CONTAINER_TAG="${IMAGE_CUSTOMIZER_CONTAINER_TAG}" \
OSMODIFIER_BIN="${OSMODIFIER_BIN}" \
INPUT_IMAGE="${INPUT_IMAGE}" \
DISTRO_ID="azurelinux" \
VERSION_ID="2.0" \
SSH_PRIVATE_KEY_FILE=~/.ssh/id_ed25519

- name: Run tests (AZL3)
Expand All @@ -180,6 +185,25 @@ jobs:
IMAGE_CUSTOMIZER_CONTAINER_TAG="${IMAGE_CUSTOMIZER_CONTAINER_TAG}" \
OSMODIFIER_BIN="${OSMODIFIER_BIN}" \
INPUT_IMAGE="${INPUT_IMAGE}" \
DISTRO_ID="azurelinux" \
VERSION_ID="3.0" \
SSH_PRIVATE_KEY_FILE=~/.ssh/id_ed25519

- name: Run tests (AZL4)
env:
IMAGE_CUSTOMIZER_CONTAINER_TAG: ${{ steps.importContainer.outputs.containerTag }}
OSMODIFIER_BIN: ${{ steps.osmodifier_bin.outputs.path }}
INPUT_IMAGE: ${{ steps.setup_image.outputs.azl4_path }}
run: |
set -eux
pushd ./repo/test/vmtests

sudo make test-osmodifier \
IMAGE_CUSTOMIZER_CONTAINER_TAG="${IMAGE_CUSTOMIZER_CONTAINER_TAG}" \
OSMODIFIER_BIN="${OSMODIFIER_BIN}" \
INPUT_IMAGE="${INPUT_IMAGE}" \
DISTRO_ID="azurelinux" \
VERSION_ID="4.0" \
SSH_PRIVATE_KEY_FILE=~/.ssh/id_ed25519

- uses: actions/upload-artifact@v7
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/tests-vmtests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ jobs:

./repo/.github/workflows/scripts/download-image.sh "$AZURE_STORAGE" "$AZURE_CONTAINER" "azure-linux/core-efi-vhdx-2.0-$HOST_ARCH" azl-core-efi-2.0
./repo/.github/workflows/scripts/download-image.sh "$AZURE_STORAGE" "$AZURE_CONTAINER" "azure-linux/core-efi-vhdx-3.0-$HOST_ARCH" azl-core-efi-3.0
./repo/.github/workflows/scripts/download-image.sh "$AZURE_STORAGE" "$AZURE_CONTAINER" "azure-linux/core-efi-vhdx-4.0-$HOST_ARCH" azl-core-efi-4.0

if [ "$HOST_ARCH" == "amd64" ]; then
./repo/.github/workflows/scripts/download-image.sh "$AZURE_STORAGE" "$AZURE_CONTAINER" "azure-linux/core-legacy-vhd-2.0-$HOST_ARCH" azl-core-legacy-2.0
Expand Down Expand Up @@ -170,6 +171,7 @@ jobs:
IMAGE_CUSTOMIZER_CONTAINER_TAG="$CONTAINER_TAG" \
CORE_EFI_AZL2="../../../azl-core-efi-2.0/image.vhdx" \
CORE_EFI_AZL3="../../../azl-core-efi-3.0/image.vhdx" \
CORE_EFI_AZL4="../../../azl-core-efi-4.0/image.vhdx" \
CORE_LEGACY_AZL2="$CORE_LEGACY_AZL2" \
CORE_LEGACY_AZL3="$CORE_LEGACY_AZL3" \
RPM_SOURCES_AZL3="$TEST_RPMS_DIR/downloadedrpms/azurelinux/3.0" \
Expand Down
1 change: 1 addition & 0 deletions docs/imagecustomizer/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ other Linux distributions as well.
Image Customizer supports the following input image distributions:

- Azure Linux 3.0
- Azure Linux 4.0
- Ubuntu 22.04
- Ubuntu 24.04

Expand Down
Loading
Loading