Skip to content

Commit e6df1da

Browse files
committed
try and fix perms
Signed-off-by: Simon Davies <[email protected]>
1 parent 728db5f commit e6df1da

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

.github/workflows/dep_rust.yml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,67 @@ jobs:
6161
env:
6262
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
6363

64+
- name: Setup hypervisor device access
65+
if: runner.os == 'Linux' && matrix.hypervisor == 'kvm'
66+
run: |
67+
echo "=== Setting up hypervisor device access ==="
68+
echo "Current user: $(whoami)"
69+
echo "User ID and groups: $(id)"
70+
echo ""
71+
72+
# Check initial device state
73+
echo "Initial device state:"
74+
ls -la /dev/kvm 2>/dev/null || echo "kvm device not found initially"
75+
echo ""
76+
77+
# Check and setup KVM group access
78+
if getent group kvm >/dev/null 2>&1; then
79+
echo "✅ KVM group exists"
80+
echo "Adding user $(whoami) to kvm group..."
81+
sudo usermod -a -G kvm $(whoami)
82+
else
83+
echo "⚠️ KVM group doesn't exist, creating it..."
84+
sudo groupadd kvm || echo "Failed to create kvm group"
85+
sudo usermod -a -G kvm $(whoami) || echo "Failed to add user to kvm group"
86+
fi
87+
echo ""
88+
89+
# Trigger udev processing to create devices
90+
echo "Triggering udev device processing..."
91+
sudo udevadm control --reload-rules
92+
sudo udevadm trigger --subsystem-match=misc
93+
sudo udevadm settle
94+
echo ""
95+
96+
# Set device permissions if devices exist
97+
if [ -e /dev/kvm ]; then
98+
echo "Setting KVM device permissions..."
99+
sudo chown root:kvm /dev/kvm || echo "Failed to set KVM ownership"
100+
sudo chmod 660 /dev/kvm || echo "Failed to set KVM permissions"
101+
echo "✅ KVM device configured"
102+
else
103+
echo "⚠️ /dev/kvm device not found after module loading"
104+
fi
105+
106+
# Create new shell session to pick up group membership
107+
echo "Refreshing group membership..."
108+
exec sg kvm newgrp $(id -gn) || echo "Could not refresh group membership"
109+
echo ""
110+
111+
echo "User group membership:"
112+
groups || echo "Could not determine group membership"
113+
echo ""
114+
115+
echo "Device access test:"
116+
if [ -e /dev/kvm ]; then
117+
if timeout 5 test -r /dev/kvm -a -w /dev/kvm; then
118+
echo "✅ /dev/kvm is accessible (rw access confirmed)"
119+
else
120+
echo "❌ /dev/kvm is not accessible (rw access failed)"
121+
fi
122+
else
123+
echo "❌ /dev/kvm device not present"
124+
fi
64125
- name: fmt
65126
run: just fmt-check
66127

0 commit comments

Comments
 (0)