Repository navigation
Actions to install latest QEMU support on GitHub runners - #31
Draft
RamakrishnanPK wants to merge 11 commits into
Draft
RamakrishnanPK wants to merge 11 commits into
RamakrishnanPK wants to merge 11 commits into
Conversation
RamakrishnanPK
requested review from
AlexanderLanin,
MaximilianSoerenPollak,
PiotrKorkus,
dcalavrezo-qorix,
lurtz and
pawelrutkaq
as code owners
August 25, 2026 11:25
AlexanderLanin
requested changes
Aug 25, 2026
There was a problem hiding this comment.
🟡 Changes recommended
Direct shell interpolation, insecure KVM permissions, and incomplete cache identity create blocking security and reliability risks.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Adds a reusable action to build, cache, install, and validate modern QEMU with Raspberry Pi 4 support.
Changes:
- Adds configurable QEMU source installation and caching.
- Adds documentation and an integration test workflow.
- Adds the test to the PR CI gate.
File summaries
| File | Description |
|---|---|
setup-qemu-latest/action.yml |
Implements the composite action. |
setup-qemu-latest/README.md |
Documents configuration and usage. |
.github/workflows/test-setup-qemu-latest.yml |
Tests installation, outputs, and KVM configuration. |
.github/workflows/_local_on_pr.yml |
Adds the test to PR validation. |
Review details
Suppressed comments (3)
setup-qemu-latest/action.yml:70
- Action inputs are interpolated directly into generated Bash source. A quoted value containing a quote, command separator, or newline can escape these assignments and execute arbitrary commands; the same pattern recurs for the dependency, download, build, cleanup, PATH, and validation steps. Pass every input through
env, validate structured values such as versions and package names, and consume argument lists via arrays rather than embedding${{ inputs.* }}in scripts.
install_prefix="${{ inputs.install-prefix }}/${{ inputs.qemu-version }}"
setup-qemu-latest/action.yml:49
- Defaulting
/dev/kvmto 0666 grants every local account access to the KVM kernel interface, and the udev rule persists after jobs on compatible self-hosted runners. Use the standard 0660root:kvmpolicy and grant only the runner account group membership, or make this persistent host modification explicitly opt-in.
default: "0666"
setup-qemu-latest/action.yml:72
- The cache can restore incompatible or stale binaries:
runner.osis identical for x64 and ARM64 runners, and the hash omits the hard-coded build recipe. This can produce an exec-format failure across architectures and lets later action revisions skip their updated build logic. Includerunner.archand a recipe hash (or explicitly maintained cache schema) in the key.
config_hash="$(printf '%s' "${{ inputs.qemu-targets }}|${{ inputs.configure-args }}|${{ inputs.extra-build-deps }}" | sha256sum | cut -d' ' -f1)"
cache_key="qemu-${{ runner.os }}-${{ inputs.qemu-version }}-${config_hash}"
- Files reviewed: 4/4 changed files
- Comments generated: 3
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
RamakrishnanPK
force-pushed
the
task/setup-qemu-action-dev
branch
from
September 11, 2026 09:30
d83d48f to
b102594
Compare
lurtz
reviewed
Sep 11, 2026
- Cleanup KVM permissions - Simplify existing QEMU detection and downgrade sections.
This was referenced Sep 29, 2026
| install_prefix="$INSTALL_PREFIX_BASE/$QEMU_VERSION" | ||
| prefix_hash="$(printf '%s' "$install_prefix" | sha256sum | cut -d' ' -f1)" | ||
| config_hash="$(printf '%s' "$QEMU_TARGETS|$CONFIGURE_ARGS|$EXTRA_BUILD_DEPS" | sha256sum | cut -d' ' -f1)" | ||
| cache_key="qemu-${{ runner.os }}-$QEMU_VERSION-${prefix_hash}-${config_hash}" |
Comment on lines
+278
to
+279
| if [[ -e /dev/kvm ]]; then | ||
| sudo chmod 666 /dev/kvm |
Comment on lines
+31
to
+36
| - name: Run setup-qemu-latest action | ||
| id: setup-qemu | ||
| uses: ./setup-qemu-latest | ||
| with: | ||
| validation-target: aarch64 | ||
| nproc: "2" |
Comment on lines
+52
to
+54
| install-prefix: | ||
| description: Full path QEMU was installed under. | ||
| value: ${{ steps.vars.outputs.install-prefix }} |
AlexanderLanin
marked this pull request as draft
September 30, 2026 09:48
Member
|
Please mark ready for review once all copilot findings are (commented or fixed) and resolved. |
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.



Adds configurable QEMU source installation and caching.
Adds documentation and an integration test workflow.
Adds the test to the PR CI gate.
Fixes eclipse-score/score#1837