Skip to content

Ci/check macos virtualization#165

Merged
simongdavies merged 3 commits into
hyperlight-dev:mainfrom
simongdavies:ci/check-macos-virtualization
May 20, 2026
Merged

Ci/check macos virtualization#165
simongdavies merged 3 commits into
hyperlight-dev:mainfrom
simongdavies:ci/check-macos-virtualization

Conversation

@simongdavies
Copy link
Copy Markdown
Member

test macOS self hosted runner

Adds a workflow_dispatch-only job that runs on an Apple Silicon (arm64) GitHub-hosted macOS runner and reports whether the Virtualization framework is available. Probes layer from cheapest to most authoritative: runner identity dump, arm64 assertion, kern.hv_support sysctl, framework bundle presence, and finally VZVirtualMachine.isSupported via an inline Swift program. Writes a result table to the job step summary.
On Apple Silicon kern.hv_support does not exist, so the previous hard-fail was wrong. Demote sysctl inspection to diagnostic-only (now also captures kern.hv_vmm_present and CPU brand), let the Swift VZVirtualMachine.isSupported probe be the sole pass/fail signal, and record each step's findings to GITHUB_OUTPUT so the always()-summary renders an accurate table even when later steps fail.
Signed-off-by: Simon Davies <simongdavies@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 20, 2026 11:33
@simongdavies simongdavies added the enhancement New feature or request label May 20, 2026
@simongdavies simongdavies merged commit 8d3b3c6 into hyperlight-dev:main May 20, 2026
13 checks passed
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a manually-triggered GitHub Actions workflow to probe whether a macOS ARM64 runner supports Apple’s Virtualization.framework (via a Swift check of VZVirtualMachine.isSupported), intended to validate feasibility of running Hyperlight-backed micro-VMs on macOS runners.

Changes:

  • Introduces a new workflow_dispatch workflow to collect runner identity + hypervisor-related sysctl diagnostics.
  • Validates Virtualization.framework presence on disk and performs an authoritative Swift runtime probe.
  • Writes a Markdown summary of the collected results to the workflow run summary.
Comments suppressed due to low confidence (1)

.github/workflows/check-macos-virtualization.yml:191

  • The step summary hard-codes the runner label as macos-latest, but this workflow runs on a self-hosted runner. This can mislead triage when comparing runs across runner pools; consider outputting the actual runner identity (e.g. runner.name and/or the configured runs-on labels) instead of a hard-coded value.
            echo "| Property | Value |"
            echo "| --- | --- |"
            echo "| Runner label | macos-latest |"
            echo "| OS | ${{ steps.identity.outputs.os_name }} ${{ steps.identity.outputs.os_version }} (build ${{ steps.identity.outputs.os_build }}) |"
            echo "| Architecture | ${{ steps.identity.outputs.arch }} |"

Comment on lines +3 to +16
# Manual probe: confirm the Virtualization.framework is available on a
# GitHub-hosted Apple Silicon (ARM64) macOS runner.
#
# Apple's Virtualization.framework is the macOS analogue of KVM/WHP that
# hyperlight needs for micro-VMs. This job inspects the runner so we can
# verify before betting on macOS hosting (see /memories/azure-hosting-kvm.md
# for why "just use platform X" warrants a real check first).
#
# Authoritative pass/fail: VZVirtualMachine.isSupported (Apple's own runtime
# verdict). The sysctl dump is diagnostic only — on Apple Silicon some keys
# (notably kern.hv_support) simply do not exist; treating their absence as a
# failure is wrong. We also capture kern.hv_vmm_present which tells us whether
# this kernel itself is running inside a hypervisor (true for GitHub-hosted
# macOS runners) — relevant because nested-virt support is silicon/OS
Comment on lines +8 to +9
# verify before betting on macOS hosting (see /memories/azure-hosting-kvm.md
# for why "just use platform X" warrants a real check first).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants