Merge pull request #202 from cachix/feature/kvm

feat: enable KVM on Linux if available
This commit is contained in:
Domen Kožar 2023-11-23 10:52:28 +01:00 committed by GitHub
commit 2b90cd3130
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 0 deletions

View file

@ -73,6 +73,8 @@ To install Nix from any commit, go to [the corresponding installer_test action](
- `nix_path`: set `NIX_PATH` environment variable, for example `nixpkgs=channel:nixos-unstable` - `nix_path`: set `NIX_PATH` environment variable, for example `nixpkgs=channel:nixos-unstable`
- `enable_kvm`: whether to enable KVM for hardware-accelerated virtualization on Linux. Enabled by default if available.
--- ---
## FAQ ## FAQ

View file

@ -12,6 +12,10 @@ inputs:
description: 'Additional installer flags passed to the installer script.' description: 'Additional installer flags passed to the installer script.'
nix_path: nix_path:
description: 'Set NIX_PATH environment variable.' description: 'Set NIX_PATH environment variable.'
enable_kvm:
description: 'Enable KVM for hardware-accelerated virtualization on Linux, if available.'
required: false
default: true
branding: branding:
color: 'blue' color: 'blue'
icon: 'sun' icon: 'sun'
@ -26,4 +30,5 @@ runs:
INPUT_INSTALL_OPTIONS: ${{ inputs.install_options }} INPUT_INSTALL_OPTIONS: ${{ inputs.install_options }}
INPUT_INSTALL_URL: ${{ inputs.install_url }} INPUT_INSTALL_URL: ${{ inputs.install_url }}
INPUT_NIX_PATH: ${{ inputs.nix_path }} INPUT_NIX_PATH: ${{ inputs.nix_path }}
INPUT_ENABLE_KVM: ${{ inputs.enable_kvm }}
GITHUB_TOKEN: ${{ github.token }} GITHUB_TOKEN: ${{ github.token }}

View file

@ -6,6 +6,17 @@ if nix_path="$(type -p nix)" ; then
exit exit
fi fi
if [[ ($OSTYPE =~ linux) && ($INPUT_ENABLE_KVM == 'true') ]]; then
enable_kvm() {
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-install-nix-action-kvm.rules
sudo udevadm control --reload-rules && sudo udevadm trigger --name-match=kvm
}
echo '::group::Enabling KVM support'
enable_kvm && echo 'Enabled KVM' || echo 'KVM is not available'
echo '::endgroup::'
fi
# GitHub command to put the following log messages into a group which is collapsed by default # GitHub command to put the following log messages into a group which is collapsed by default
echo "::group::Installing Nix" echo "::group::Installing Nix"