Skip to content

Commit 7816187

Browse files
committed
ci: configure jepsen workflow to use libvirt on ubuntu-latest
1 parent 88db435 commit 7816187

File tree

1 file changed

+27
-4
lines changed

1 file changed

+27
-4
lines changed

.github/workflows/jepsen.yml

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@ on:
2121

2222
jobs:
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
@@ -35,9 +36,31 @@ jobs:
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
@@ -72,4 +95,4 @@ jobs:
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

Comments
 (0)