From 666ba7004f6c6280d14f6e65d22647ca4f8b4b6a Mon Sep 17 00:00:00 2001 From: Luis-ADFA Date: Mon, 31 Aug 2026 15:28:11 -0600 Subject: [PATCH 1/4] ADFA-5334 ci(rootfs): bake on ubuntu-22.04-arm + checkout v5 Run the rootfs bake on ubuntu-22.04-arm (glibc<2.39) to avoid the fchmodat2 dir-mode failure that aborts the install under proot on 24.04-arm, and bump actions/checkout v4 -> v5 (drops deprecated Node 20). --- .github/workflows/bake-rootfs.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/bake-rootfs.yml b/.github/workflows/bake-rootfs.yml index c99c8163..2f092496 100644 --- a/.github/workflows/bake-rootfs.yml +++ b/.github/workflows/bake-rootfs.yml @@ -40,7 +40,7 @@ jobs: timeout-minutes: 30 steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Ensure AWS CLI is available run: aws --version || { sudo apt-get update && sudo apt-get install -y awscli; } @@ -88,7 +88,7 @@ jobs: name: RootFS ${{ matrix.arch }} # Native arm64 runner (the builder uses native proot, not QEMU). Adjust the label # if the org uses a different arm64 runner (e.g. a self-hosted one). - runs-on: ubuntu-24.04-arm + runs-on: ubuntu-22.04-arm # ADFA-5334: glibc<2.39 avoids the fchmodat2 dir-mode failure seen on 24.04-arm timeout-minutes: 330 # under the 6h hard cap; all-tier per node is ~1.5h strategy: fail-fast: false # one arch must not cancel the other @@ -98,7 +98,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Ensure AWS CLI is available run: aws --version || { sudo apt-get update && sudo apt-get install -y awscli; } From 568c97d1c6f1ef773661829779a35bddc8fe6d60 Mon Sep 17 00:00:00 2001 From: "Luis Guzman (AppDevForAll)" Date: Mon, 31 Aug 2026 00:34:38 -0600 Subject: [PATCH 2/4] ADFA-5334 fix(rootfs-builder): mark build-iiab-rootfs.sh executable CI ran 'sudo ./tools/rootfs-builder/build-iiab-rootfs.sh' and failed with 'command not found' because the script was tracked 100644 (no +x). Its siblings (make-debian-base.sh, iiab_tree_hash.py) are 100755; this one lost the bit on a Windows checkout (core.filemode=false). Set the git mode to 100755 so the checked-out script is executable on the runner. --- tools/rootfs-builder/build-iiab-rootfs.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 tools/rootfs-builder/build-iiab-rootfs.sh diff --git a/tools/rootfs-builder/build-iiab-rootfs.sh b/tools/rootfs-builder/build-iiab-rootfs.sh old mode 100644 new mode 100755 From 4824aacb9215ec865fb0600db2b914ca128422a4 Mon Sep 17 00:00:00 2001 From: "Luis Guzman (AppDevForAll)" Date: Mon, 31 Aug 2026 00:36:03 -0600 Subject: [PATCH 3/4] ADFA-5334 fix(ci): invoke the builder via 'sudo bash' (not depend on exec bit) Belt-and-suspenders with the +x fix: running the script through bash makes the CI step immune to the executable bit being dropped again on a Windows checkout (core.filemode=false). The builder's own self-dispatch already uses 'bash $SELF', so only the top-level workflow call needed this. --- .github/workflows/bake-rootfs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/bake-rootfs.yml b/.github/workflows/bake-rootfs.yml index 2f092496..be84128d 100644 --- a/.github/workflows/bake-rootfs.yml +++ b/.github/workflows/bake-rootfs.yml @@ -105,7 +105,7 @@ jobs: - name: Build all tiers for ${{ matrix.arch }} run: | - sudo ./tools/rootfs-builder/build-iiab-rootfs.sh \ + sudo bash ./tools/rootfs-builder/build-iiab-rootfs.sh \ --all-tier --arch "${{ matrix.arch }}" \ --publish-url "$ROOTFS_PUBLIC_BASE" --reset-mirrors # the builder runs as root; hand dist/ back to the runner so the upload step can read it From 5b164cb23af3c9e0b415c00ec1b2e07ffc7228bf Mon Sep 17 00:00:00 2001 From: Luis-ADFA Date: Mon, 31 Aug 2026 19:42:09 -0600 Subject: [PATCH 4/4] ADFA-5334 revert(ci): drop the interim ubuntu-22.04-arm pin --- .github/workflows/bake-rootfs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/bake-rootfs.yml b/.github/workflows/bake-rootfs.yml index be84128d..1cd98c41 100644 --- a/.github/workflows/bake-rootfs.yml +++ b/.github/workflows/bake-rootfs.yml @@ -88,7 +88,7 @@ jobs: name: RootFS ${{ matrix.arch }} # Native arm64 runner (the builder uses native proot, not QEMU). Adjust the label # if the org uses a different arm64 runner (e.g. a self-hosted one). - runs-on: ubuntu-22.04-arm # ADFA-5334: glibc<2.39 avoids the fchmodat2 dir-mode failure seen on 24.04-arm + runs-on: ubuntu-24.04-arm timeout-minutes: 330 # under the 6h hard cap; all-tier per node is ~1.5h strategy: fail-fast: false # one arch must not cancel the other