Skip to content

Add dependency for generating debian file#15

Merged
igorpecovnik merged 1 commit intomainfrom
igorpecovnik-patch-1
Dec 6, 2023
Merged

Add dependency for generating debian file#15
igorpecovnik merged 1 commit intomainfrom
igorpecovnik-patch-1

Conversation

@igorpecovnik
Copy link
Copy Markdown
Member

No description provided.

@igorpecovnik igorpecovnik merged commit 95ca137 into main Dec 6, 2023
@igorpecovnik igorpecovnik deleted the igorpecovnik-patch-1 branch December 6, 2023 20:09
igorpecovnik added a commit that referenced this pull request Apr 18, 2026
Add riscv64 to the arches the matrix generator knows about, mapped
to the GH-hosted 'ubuntu-24.04-riscv' runner (self-hosted pool has
no riscv64 host yet). The runner value is emitted as a JSON string
literal for riscv64 vs JSON arrays for amd64/arm64 — runs-on:
${{ matrix.server.runner }} accepts either form.

No change to test .conf defaults: TESTARCH="arm64,amd64" stays,
so existing tests don't auto-pick riscv64. Tests that want riscv64
coverage opt in by editing TESTARCH to e.g.
"arm64,amd64,riscv64" — same pattern as RELEASE.

Prerequisite: ghcr.io/armbian/repository-update:<release>-riscv64
tags must exist. armbian/docker-armbian-build PR #15 (pending)
adds riscv64 to the image-build matrix; until that lands, any
riscv64 unit-test job will fail to pull its container image.
igorpecovnik added a commit that referenced this pull request Apr 18, 2026
Add riscv64 to the arches the matrix generator knows about, mapped
to the GH-hosted 'ubuntu-24.04-riscv' runner (self-hosted pool has
no riscv64 host yet). The runner value is emitted as a JSON string
literal for riscv64 vs JSON arrays for amd64/arm64 — runs-on:
${{ matrix.server.runner }} accepts either form.

No change to test .conf defaults: TESTARCH="arm64,amd64" stays,
so existing tests don't auto-pick riscv64. Tests that want riscv64
coverage opt in by editing TESTARCH to e.g.
"arm64,amd64,riscv64" — same pattern as RELEASE.

Prerequisite: ghcr.io/armbian/repository-update:<release>-riscv64
tags must exist. armbian/docker-armbian-build PR #15 (pending)
adds riscv64 to the image-build matrix; until that lands, any
riscv64 unit-test job will fail to pull its container image.
igorpecovnik added a commit that referenced this pull request Apr 18, 2026
Extend the unit-test matrix with two foreign-arch slots and a
new per-arch 'emulation' field that routes each matrix entry to
one of two gradle jobs:

  emulation=""               → gradle-native (runs inside the
                               release-/arch-specific
                               repository-update container,
                               systemd PID-N, as today);
  emulation="linux/<arch>"    → gradle-emulated (no job-level
                               'container:' — runs on the amd64
                               self-hosted host, uses
                               docker/setup-qemu-action + an
                               explicit `docker run --platform`
                               to launch the arch-specific image
                               under qemu-user-static).

The emulated path deliberately avoids GH's job-level container
key for two reasons:
  1. GHA mounts the host's Node.js into the container at
     /__e/node{N}/. The host binary is amd64; Node-based actions
     (checkout, upload-artifact) fail to exec inside an
     armhf/riscv64 container. Running the actions on the host
     and docker-running only the test body sidesteps that.
  2. systemd PID-1 under qemu-user is flaky (syscall gaps);
     most module_* tests don't actually need PID-1 systemd and
     we can just skip the Initialize-systemd step there.

Matrix generator gains an emulation_for_arch map and splits the
flat matrix into two GITHUB_OUTPUT values
(DEPLOYMENT_MATRIX_NATIVE / _EMULATED). The original flat
DEPLOYMENT_MATRIX output is gone; if some external workflow
consumed it, rewire to the new names.

Timeout on emulated jobs bumped to 180 min — qemu-user is
typically 10–20× slower than native.

Arch readiness:
  armhf    — docker-armbian-build doesn't publish armhf image
             tags yet (explicit skip in its matrix). The 'docker
             pull' step will fail fast if a test opts in before
             those tags exist. Enable in docker-armbian-build as
             a separate PR.
  riscv64  — images come from docker-armbian-build PR #15 (the
             riscv64 enablement). Merges in lockstep.

No test .conf is changed — every existing TESTARCH value stays
as today. Opt a test into emulated coverage by editing its
TESTARCH to include 'armhf' and/or 'riscv64' once the matching
images exist.
igorpecovnik added a commit that referenced this pull request Apr 18, 2026
Extend the unit-test matrix with two foreign-arch slots and a
new per-arch 'emulation' field that routes each matrix entry to
one of two gradle jobs:

  emulation=""               → gradle-native (runs inside the
                               release-/arch-specific
                               repository-update container,
                               systemd PID-N, as today);
  emulation="linux/<arch>"    → gradle-emulated (no job-level
                               'container:' — runs on the amd64
                               self-hosted host, uses
                               docker/setup-qemu-action + an
                               explicit `docker run --platform`
                               to launch the arch-specific image
                               under qemu-user-static).

The emulated path deliberately avoids GH's job-level container
key for two reasons:
  1. GHA mounts the host's Node.js into the container at
     /__e/node{N}/. The host binary is amd64; Node-based actions
     (checkout, upload-artifact) fail to exec inside an
     armhf/riscv64 container. Running the actions on the host
     and docker-running only the test body sidesteps that.
  2. systemd PID-1 under qemu-user is flaky (syscall gaps);
     most module_* tests don't actually need PID-1 systemd and
     we can just skip the Initialize-systemd step there.

Matrix generator gains an emulation_for_arch map and splits the
flat matrix into two GITHUB_OUTPUT values
(DEPLOYMENT_MATRIX_NATIVE / _EMULATED). The original flat
DEPLOYMENT_MATRIX output is gone; if some external workflow
consumed it, rewire to the new names.

Timeout on emulated jobs bumped to 180 min — qemu-user is
typically 10–20× slower than native.

Arch readiness:
  armhf    — docker-armbian-build doesn't publish armhf image
             tags yet (explicit skip in its matrix). The 'docker
             pull' step will fail fast if a test opts in before
             those tags exist. Enable in docker-armbian-build as
             a separate PR.
  riscv64  — images come from docker-armbian-build PR #15 (the
             riscv64 enablement). Merges in lockstep.

No test .conf is changed — every existing TESTARCH value stays
as today. Opt a test into emulated coverage by editing its
TESTARCH to include 'armhf' and/or 'riscv64' once the matching
images exist.
igorpecovnik added a commit that referenced this pull request Apr 19, 2026
Extend the unit-test matrix with two foreign-arch slots and a
new per-arch 'emulation' field that routes each matrix entry to
one of two gradle jobs:

  emulation=""               → gradle-native (runs inside the
                               release-/arch-specific
                               repository-update container,
                               systemd PID-N, as today);
  emulation="linux/<arch>"    → gradle-emulated (no job-level
                               'container:' — runs on the amd64
                               self-hosted host, uses
                               docker/setup-qemu-action + an
                               explicit `docker run --platform`
                               to launch the arch-specific image
                               under qemu-user-static).

The emulated path deliberately avoids GH's job-level container
key for two reasons:
  1. GHA mounts the host's Node.js into the container at
     /__e/node{N}/. The host binary is amd64; Node-based actions
     (checkout, upload-artifact) fail to exec inside an
     armhf/riscv64 container. Running the actions on the host
     and docker-running only the test body sidesteps that.
  2. systemd PID-1 under qemu-user is flaky (syscall gaps);
     most module_* tests don't actually need PID-1 systemd and
     we can just skip the Initialize-systemd step there.

Matrix generator gains an emulation_for_arch map and splits the
flat matrix into two GITHUB_OUTPUT values
(DEPLOYMENT_MATRIX_NATIVE / _EMULATED). The original flat
DEPLOYMENT_MATRIX output is gone; if some external workflow
consumed it, rewire to the new names.

Timeout on emulated jobs bumped to 180 min — qemu-user is
typically 10–20× slower than native.

Arch readiness:
  armhf    — docker-armbian-build doesn't publish armhf image
             tags yet (explicit skip in its matrix). The 'docker
             pull' step will fail fast if a test opts in before
             those tags exist. Enable in docker-armbian-build as
             a separate PR.
  riscv64  — images come from docker-armbian-build PR #15 (the
             riscv64 enablement). Merges in lockstep.

No test .conf is changed — every existing TESTARCH value stays
as today. Opt a test into emulated coverage by editing its
TESTARCH to include 'armhf' and/or 'riscv64' once the matching
images exist.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant