From 9c45c95c2b42122f5a6918c7e97d56dad26ce508 Mon Sep 17 00:00:00 2001 From: Maxwell Oldshein Date: Fri, 10 Oct 2025 16:17:33 -0400 Subject: [PATCH 1/7] Enable arm64 runners for tests --- .github/workflows/changelog.yml | 2 +- .github/workflows/ci.yml | 2 +- .github/workflows/lint.yml | 2 +- .github/workflows/merge-conflict.yml | 2 +- .github/workflows/pylint.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index 8153697ab..c8d592388 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -11,7 +11,7 @@ jobs: check: strategy: matrix: - os: [ubuntu-latest] + os: [ubuntu-latest, ubuntu-24.04-arm] runs-on: ${{ matrix.os }} timeout-minutes: 5 steps: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 98ff13787..509392ad4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,7 +6,7 @@ jobs: strategy: matrix: python_version: ['3.10', '3.12', '3.13'] - os: [ubuntu-latest] + os: [ubuntu-latest, ubuntu-24.04-arm] runs-on: ${{ matrix.os }} timeout-minutes: 30 services: diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index e969db79d..dbf71f04e 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -6,7 +6,7 @@ jobs: strategy: matrix: python-version: ['3.10'] - os: [ubuntu-latest] + os: [ubuntu-latest, ubuntu-24.04-arm] runs-on: ${{ matrix.os }} timeout-minutes: 30 steps: diff --git a/.github/workflows/merge-conflict.yml b/.github/workflows/merge-conflict.yml index e1f6f4097..5b702fa27 100644 --- a/.github/workflows/merge-conflict.yml +++ b/.github/workflows/merge-conflict.yml @@ -9,7 +9,7 @@ jobs: mergecheck: strategy: matrix: - os: [ubuntu-latest] + os: [ubuntu-latest, ubuntu-24.04-arm] runs-on: ${{ matrix.os }} timeout-minutes: 5 steps: diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml index 16009ae58..b1a967d2b 100644 --- a/.github/workflows/pylint.yml +++ b/.github/workflows/pylint.yml @@ -6,7 +6,7 @@ jobs: strategy: matrix: python-version: ['3.10'] - os: [ubuntu-latest] + os: [ubuntu-latest, ubuntu-24.04-arm] runs-on: ${{ matrix.os }} timeout-minutes: 30 steps: From eb38fe5e4f04bd1da1aad6763bd7f14ec0b5e6ef Mon Sep 17 00:00:00 2001 From: Maxwell Oldshein Date: Fri, 10 Oct 2025 17:59:58 -0400 Subject: [PATCH 2/7] Fix arm64 dependency error --- .github/workflows/ci.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 509392ad4..6f60f37b3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -105,10 +105,15 @@ jobs: binutils-sparc64-linux-gnu \ binutils-riscv64-linux-gnu \ binutils-loongarch64-linux-gnu \ - gcc-multilib \ libc6-dbg \ elfutils \ patchelf + if [ "($uname -m)" = "x86_64" ]; then + echo "Installing gcc-multilib for 32-bit build." + sudo apt-get install -y --no-install-recommends -o Acquire::Retries=3 gcc-multilib + else + echo "Skipping gcc-multilib for 64-bit build." + fi # Print diagnostics to help when Corefile doctests fail. - name: Testing Corefiles From 4ffe8872eb67d809fdf202b7ab4993cc05be8576 Mon Sep 17 00:00:00 2001 From: Maxwell Oldshein Date: Fri, 10 Oct 2025 18:33:31 -0400 Subject: [PATCH 3/7] Correct test issue --- .github/workflows/ci.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6f60f37b3..36bcd73ff 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -110,7 +110,8 @@ jobs: patchelf if [ "($uname -m)" = "x86_64" ]; then echo "Installing gcc-multilib for 32-bit build." - sudo apt-get install -y --no-install-recommends -o Acquire::Retries=3 gcc-multilib + sudo apt-get install -y --no-install-recommends -o Acquire::Retries=3 / + gcc-multilib else echo "Skipping gcc-multilib for 64-bit build." fi @@ -145,7 +146,13 @@ jobs: run: | echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope # required by some gdb doctests + - name: Skip doctests on ARM64 runners (requires x86-specific content) + if: runner.arch = 'X64' + run: | + echo "Skipping doctests as they contain x86-specific test content not valid on ARM64" + - name: Coverage doctests + if: runner.arch = 'X64' run: | # Python version installed using setup-python interferes with gdb's python # by setting LD_LIBRARY_PATH and gdb's python becoming unable to load built-in modules From 073f9f0c065e0ae94863b07c565f3f3a2e485ef6 Mon Sep 17 00:00:00 2001 From: Maxwell Oldshein Date: Fri, 10 Oct 2025 19:08:49 -0400 Subject: [PATCH 4/7] Fix CI test syntax error --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 36bcd73ff..166fcce0e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -147,12 +147,12 @@ jobs: echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope # required by some gdb doctests - name: Skip doctests on ARM64 runners (requires x86-specific content) - if: runner.arch = 'X64' + if: runner.arch == 'ARM64' run: | echo "Skipping doctests as they contain x86-specific test content not valid on ARM64" - name: Coverage doctests - if: runner.arch = 'X64' + if: runner.arch == 'X64' run: | # Python version installed using setup-python interferes with gdb's python # by setting LD_LIBRARY_PATH and gdb's python becoming unable to load built-in modules From 28335122abda85bc597e81646aecf140f92d2202 Mon Sep 17 00:00:00 2001 From: Maxwell Oldshein Date: Fri, 10 Oct 2025 19:20:31 -0400 Subject: [PATCH 5/7] Add detect architecture step --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 166fcce0e..d2db0c78d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -146,6 +146,9 @@ jobs: run: | echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope # required by some gdb doctests + - name: Detect running architecture + run: uname -m + - name: Skip doctests on ARM64 runners (requires x86-specific content) if: runner.arch == 'ARM64' run: | From a7a1401a04ded4e2b3ed53cffb7a1a94493a06f9 Mon Sep 17 00:00:00 2001 From: Maxwell Oldshein Date: Fri, 10 Oct 2025 21:03:01 -0400 Subject: [PATCH 6/7] Expand arm64 runners --- .github/workflows/ci.yml | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d2db0c78d..a47a0b643 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,7 +6,7 @@ jobs: strategy: matrix: python_version: ['3.10', '3.12', '3.13'] - os: [ubuntu-latest, ubuntu-24.04-arm] + os: [ubuntu-latest] runs-on: ${{ matrix.os }} timeout-minutes: 30 services: @@ -105,16 +105,17 @@ jobs: binutils-sparc64-linux-gnu \ binutils-riscv64-linux-gnu \ binutils-loongarch64-linux-gnu \ + gcc-multilib \ libc6-dbg \ elfutils \ patchelf - if [ "($uname -m)" = "x86_64" ]; then - echo "Installing gcc-multilib for 32-bit build." - sudo apt-get install -y --no-install-recommends -o Acquire::Retries=3 / - gcc-multilib - else - echo "Skipping gcc-multilib for 64-bit build." - fi + # if [ "($uname -m)" = "x86_64" ]; then + # echo "Installing gcc-multilib for 32-bit build." + # sudo apt-get install -y --no-install-recommends -o Acquire::Retries=3 / + # gcc-multilib + # else + # echo "Skipping gcc-multilib for 64-bit build." + # fi # Print diagnostics to help when Corefile doctests fail. - name: Testing Corefiles @@ -146,16 +147,16 @@ jobs: run: | echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope # required by some gdb doctests - - name: Detect running architecture - run: uname -m + # - name: Detect running architecture + # run: uname -m - - name: Skip doctests on ARM64 runners (requires x86-specific content) - if: runner.arch == 'ARM64' - run: | - echo "Skipping doctests as they contain x86-specific test content not valid on ARM64" + # - name: Skip doctests on ARM64 runners (requires x86-specific content) + # if: runner.arch == 'ARM64' + # run: | + # echo "Skipping doctests as they contain x86-specific test content not valid on ARM64" - name: Coverage doctests - if: runner.arch == 'X64' + # if: runner.arch == 'X64' run: | # Python version installed using setup-python interferes with gdb's python # by setting LD_LIBRARY_PATH and gdb's python becoming unable to load built-in modules @@ -259,7 +260,7 @@ jobs: sudo chown -R runner:runner /home/runner/libcdb-cache android-test: - runs-on: ubuntu-latest + runs-on: [ubuntu-latest, ubuntu-24.04-arm] timeout-minutes: 30 continue-on-error: true steps: @@ -364,7 +365,7 @@ jobs: include-hidden-files: true upload-coverage: - runs-on: ubuntu-latest + runs-on: [ubuntu-latest, ubuntu-24.04-arm] needs: test steps: - uses: actions/checkout@v5 @@ -387,7 +388,7 @@ jobs: staging-merge: - runs-on: ubuntu-latest + runs-on: [ubuntu-latest, ubuntu-24.04-arm] if: github.repository_owner == 'Gallopsled' && github.event_name == 'push' && startsWith(github.event.ref, 'refs/heads/') && endsWith(github.event.ref, '-staging') needs: test steps: @@ -406,7 +407,7 @@ jobs: pypi: - runs-on: ubuntu-latest + runs-on: [ubuntu-latest, ubuntu-24.04-arm] if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') permissions: id-token: write From 95404bc542534f9e9a11108b33f226bdb9ba05f9 Mon Sep 17 00:00:00 2001 From: Maxwell Oldshein Date: Fri, 10 Oct 2025 21:25:32 -0400 Subject: [PATCH 7/7] Expand arm64 runner to Docker job --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index a991b2af3..4af2b6765 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -8,7 +8,7 @@ on: workflow_dispatch: jobs: publish: - runs-on: ubuntu-latest + runs-on: [ubuntu-latest, ubuntu-24.04-arm] if: github.repository_owner == 'Gallopsled' steps: # Required for subdirectories in Git context