Add qemu-only build CI mirroring meta-qcom's pipeline - #19
Draft
Koen Kooi (koenkooi) wants to merge 1 commit into
Draft
Add qemu-only build CI mirroring meta-qcom's pipeline#19Koen Kooi (koenkooi) wants to merge 1 commit into
Koen Kooi (koenkooi) wants to merge 1 commit into
Conversation
Add a kas build matrix (nodistro x qemuarm/qemuarm64/qemux86-64) that
runs on every PR and push, giving meta-ai automated build-verification
signal for the first time. This repo previously had only the generic
qcom-preflight-checks/stale-issues hygiene workflows and relied on
manual `bitbake` runs to catch build breakage.
- ci/base.yml + ci/<machine>.yml: CI-only kas fragments mirroring
meta-qcom's ci/ layout so the reused compile action's hardcoded
paths (ci/${machine}.yml, ci/kas-container-shell-helper.sh, etc.)
work unmodified. Kept separate from kas/base.yml (the existing
hand-run developer path), which has different conventions (branch
pin, disk-monitor thresholds).
- kas/qemuarm.yml, kas/qemux86-64.yml: matching machine fragments for
the developer-facing kas/ path, alongside the existing
kas/qemuarm64.yml.
- .github/workflows/build-yocto.yml: reusable workflow (kas-setup ->
patchreview/check-layer -> compile matrix -> summary), calling
qualcomm-linux/meta-qcom's compile action directly rather than
vendoring a local copy. Runs on the same self-hosted qcom-u2404
runner pool as meta-qcom, and reuses its CACHE_DIR
(/efs/qli/meta-qcom) rather than provisioning new shared storage.
- .github/workflows/pr.yml, push.yml: trigger the reusable workflow on
PRs to main and pushes to main/wrynose.
- .github/workflows/lava-test.yml: disabled workflow_dispatch-only
placeholder documenting future on-device LAVA testing (litert,
onnxruntime, tensorflow-lite, llama-cpp on rb1-core-kit,
rb3gen2-core-kit, uno-q, ventuno-q) without wiring it up yet.
Verified locally via `kas-container dump --skip repos_checkout` for
every new kas fragment combination; no CI dry-run possible from this
environment (self-hosted runners and S3 credentials are not
reachable here).
Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
| wget -qO ${KAS_CONTAINER} https://raw.githubusercontent.com/siemens/kas/refs/tags/$LATEST/kas-container | ||
| chmod +x ${KAS_CONTAINER} | ||
|
|
||
| - uses: actions/checkout@v6 |
| ${KAS_CONTAINER} lock --update ci/base.yml | ||
|
|
||
| - name: Upload kas lockfile | ||
| uses: actions/upload-artifact@v6 |
| path: ci/*.lock.yml | ||
|
|
||
| - name: Upload kas-container | ||
| uses: actions/upload-artifact@v6 |
| if: github.repository_owner == 'qualcomm-linux' | ||
| runs-on: [self-hosted, qcom-u2404, amd64] | ||
| steps: | ||
| - uses: actions/checkout@v6 |
| ref: ${{ inputs.git_ref }} | ||
|
|
||
| - name: Download kas lockfile | ||
| uses: actions/download-artifact@v7 |
| path: ci | ||
|
|
||
| - name: Download kas-container | ||
| uses: actions/download-artifact@v7 |
| yamlfile: "" | ||
| name: ${{ matrix.machine }}/${{ matrix.distro.name }}${{ matrix.kernel.dirname }} | ||
| steps: | ||
| - uses: actions/checkout@v6 |
| ref: ${{ inputs.git_ref }} | ||
|
|
||
| - name: Run kas build | ||
| uses: qualcomm-linux/meta-qcom/.github/actions/compile@master |
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: 'Download build URLs' | ||
| uses: actions/download-artifact@v7 |
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Upload | ||
| uses: actions/upload-artifact@v6 |
Koen Kooi (koenkooi)
added a commit
to koenkooi/meta-ai
that referenced
this pull request
Jul 16, 2026
build-yocto.yml doesn't exist on main yet (flagged in review); it's in-progress as qualcomm-linux#19. Rephrase to describe CI as intended/pending rather than asserting it already enforces the matrix, and link the PR so reviewers can track it. Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
Koen Kooi (koenkooi)
added a commit
to koenkooi/meta-ai
that referenced
this pull request
Jul 16, 2026
Add a "Layer requirements: standalone build" section spelling out that meta-ai must build and package on its own, without depending on any BSP or hardware-enablement layer, and that recipes should build for qemuarm/qemuarm64/qemux86-64 with DISTRO=nodistro where possible. Add a matching PR template checklist item. CI enforcement of this matrix is described as pending rather than already in place, since the corresponding workflow (qualcomm-linux#19) hasn't landed on main yet. Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
2 tasks
Koen Kooi (koenkooi)
added a commit
to koenkooi/meta-ai
that referenced
this pull request
Jul 16, 2026
Add a "Layer requirements: standalone build" section spelling out that meta-ai must build and package on its own, without depending on any BSP or hardware-enablement layer, and that recipes should build for qemuarm/qemuarm64/qemux86-64 with DISTRO=nodistro where possible. CI enforcement of this matrix is described as pending rather than already in place, since the corresponding workflow (qualcomm-linux#19) hasn't landed on main yet. Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds automated build-verification CI for meta-ai, scoped to qemu machines only (no hardware/BSP dependency). Mirrors
meta-qcom's CI pipeline shape (kas lock → patchreview/check-layer → compile matrix → summary), reusingqualcomm-linux/meta-qcom'scompileaction directly rather than vendoring a local copy.Build/test matrix:
distro: nodistro×machine ∈ {qemuarm, qemuarm64, qemux86-64}.On-device LAVA testing is explicitly not enabled yet —
lava-test.ymlis added as aworkflow_dispatch-only disabled placeholder documenting the intended future scope (on-device testing of litert/onnxruntime/tensorflow-lite/llama-cpp against simple models, targetingrb1-core-kit,rb3gen2-core-kit,uno-q, andventuno-q— the last one currently blocked on unmerged qualcomm-linux/meta-qcom-3rdparty#16).Note: this PR is referenced from #18 (README standalone-build requirements), which describes the CI enforcement this workflow provides. Opening as draft since self-hosted-runner access for this repo (
[self-hosted, qcom-u2404, amd64]) has not been confirmed from this environment — see risks below.Type of Change
Risks / open questions (not blocking, flagging for reviewers)
qualcomm-linux/meta-aion theqcom-u2404pool is unconfirmed — if not already granted, these jobs will queue indefinitely on first run.CACHE_DIRreuses meta-qcom's existing/efs/qli/meta-qcomshared storage rather than provisioning a new path — meta-ai's CI cache now shares churn with meta-qcom's larger CI.ventuno-q(named in the LAVA placeholder's TODO) doesn't exist upstream yet.compileaction unconditionally stagesdeploy/images/<machine>/*to S3 (qcom-prd-gh-artifactsbucket) even for qemu machines, which have no hardware to flash — harmless, just build-artifact archival.Checklist
DISTRO=nodistrokas-container dump --skip repos_checkoutverification only)