2121
2222jobs :
2323 jepsen :
24- # Requires a self-hosted runner with VirtualBox + Vagrant and at least 12GB RAM free.
25- runs-on : [self-hosted, virtualbox]
24+ # Requires a runner with KVM support (e.g. larger GitHub runners or metal) for decent performance.
25+ # Standard ubuntu-latest might fall back to QEMU TCG (very slow) or fail if kvm driver is forced.
26+ runs-on : ubuntu-latest
2627 timeout-minutes : 120
2728 steps :
2829 - name : Checkout
3536 with :
3637 go-version : " 1.25.5"
3738
39+ - name : Install Vagrant and Libvirt
40+ run : |
41+ sudo apt-get update
42+ sudo apt-get install -y vagrant ruby-libvirt qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils libvirt-dev gcc make
43+
44+ # Check KVM support
45+ echo "Checking KVM support..."
46+ if [ -r /dev/kvm ]; then
47+ echo "KVM is available."
48+ else
49+ echo "WARNING: KVM is NOT available. VMs may run very slowly or fail."
50+ fi
51+
52+ # Setup Libvirt permissions
53+ sudo usermod -aG libvirt $USER
54+ # Allow current session to access libvirt socket
55+ sudo chmod 666 /var/run/libvirt/libvirt-sock
56+
57+ # Install Vagrant plugins
58+ vagrant plugin install vagrant-libvirt
59+ vagrant plugin install vagrant-scp
60+
3861 - name : Bring up Jepsen VMs
3962 working-directory : jepsen
40- run : vagrant up
63+ run : vagrant up --provider=libvirt
4164
4265 - name : Run Jepsen workload
4366 working-directory : jepsen
7295 uses : actions/upload-artifact@v4
7396 with :
7497 name : jepsen-results
75- path : artifacts/results.tgz
98+ path : artifacts/results.tgz
0 commit comments