From 5d004ba4cac7d1c13b77ba4bffe0c063053360c0 Mon Sep 17 00:00:00 2001 From: Jacek Konieczny Date: Mon, 26 Jan 2026 18:15:17 +0100 Subject: [PATCH] ci: use Multipass instead of Vagrant --- .github/workflows/ci.yml | 43 ++++++++++++++++++++++------------------ tests/Vagrantfile | 26 ------------------------ 2 files changed, 24 insertions(+), 45 deletions(-) delete mode 100644 tests/Vagrantfile diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a6edd97..b5aebf5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -66,31 +66,36 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - name: Install vagrant + - name: Install Multipass run: | - sudo apt update - sudo apt install -y vagrant libvirt-daemon libvirt-daemon-driver-qemu libvirt-clients libvirt-daemon-system - sudo chmod a+rw /var/run/libvirt/libvirt-sock - - - name: Cache Vagrant boxes - uses: actions/cache@v3 - with: - path: ~/.vagrant.d/boxes - key: ${{ runner.os }}-vagrant-${{ hashFiles('Vagrantfile') }} - restore-keys: | - ${{ runner.os }}-vagrant- + sudo snap install multipass --classic + sudo snap wait system seed.loaded + sleep 5 - - name: Start vagrant VM + - name: Start Multipass VM run: | - cp tests/Vagrantfile . - vagrant up + sudo multipass launch 24.04 -n test-vm + sleep 10 - - name: Run tests in vagrant vm + - name: Run tests in Multipass VM run: | - vagrant ssh vm -c 'cd /vagrant && /venv/bin/tox -e py -- -vv' - + set -x + sudo multipass exec test-vm -- sudo modprobe snd-seq-device + sudo multipass exec test-vm -- sudo modprobe snd-seq-dummy + sudo multipass exec test-vm -- sudo modprobe snd-rawmidi + sudo multipass exec test-vm -- sudo sh -c 'chmod a+rw /dev/snd/*' + sudo multipass transfer --recursive $PWD test-vm:/home/ubuntu/code + sudo multipass exec test-vm -- sudo apt install -y python3-cffi python3-venv python3-pip python3-wheel python3-venv libffi-dev libasound-dev alsa-utils + curl -LsSf https://astral.sh/uv/install.sh | sudo multipass exec test-vm -- sh + sudo multipass exec test-vm -- bash -c '. $HOME/.local/bin/env && cd code && uvx tox -e py -- -vv' + + - name: Stop and delete VM + run: | + sudo multipass stop test-vm + sudo multipass delete test-vm + sudo multipass purge build-pure: diff --git a/tests/Vagrantfile b/tests/Vagrantfile deleted file mode 100644 index c3c63da..0000000 --- a/tests/Vagrantfile +++ /dev/null @@ -1,26 +0,0 @@ -# Vagrant VM configuration -# for testing with actual ALSA kernel - -$script = <<-'SCRIPT' - sudo apt update - sudo apt install -y python3-cffi python3-venv python3-pip python3-wheel python3-venv libffi-dev libasound-dev alsa-utils - python3 -m venv /venv - /venv/bin/python3 -mpip install --upgrade pip - /venv/bin/python3 -mpip install tox -SCRIPT - -Vagrant.configure("2") do |config| - config.vm.box = "generic/debian12" - - config.vm.define 'vm' - - config.vm.synced_folder ".", "/vagrant", - nfs: true, - nfs_udp: false - - config.vm.provision "shell", inline: $script - - config.vm.provider :libvirt do |libvirt| - libvirt.memory = 3072 - end -end