Skip to content

feat: Add KubeVirt common-instancetypes support #283

feat: Add KubeVirt common-instancetypes support

feat: Add KubeVirt common-instancetypes support #283

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
env:
# Something seems to be setting this in the default GHA runners, which breaks bcvk
# as the default runner user doesn't have access
LIBVIRT_DEFAULT_URI: "qemu:///session"
jobs:
build-and-test:
runs-on: ubuntu-24.04
steps:
- name: Install dependencies
run: |
sudo apt update
sudo apt install -y just pkg-config go-md2man libvirt-daemon libvirt-clients qemu-kvm qemu-system qemu-utils virtiofsd
- name: Install podman for heredoc support
run: |
set -eux
echo 'deb [trusted=yes] https://ftp.debian.org/debian/ testing main' | sudo tee /etc/apt/sources.list.d/testing.list
sudo apt update
sudo apt install -y crun/testing podman/testing just
- name: Enable KVM group perms
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
ls -l /dev/kvm
- uses: actions/checkout@v4
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- uses: taiki-e/install-action@nextest
- name: Cache build artifacts
uses: Swatinem/rust-cache@v2
- name: Build
run: just validate && just build
- name: Run unit tests
run: just unit
- name: Run integration tests
run: just test-integration
- name: Upload junit XML
if: always()
uses: actions/upload-artifact@v4
with:
name: integration-junit-xml
path: target/nextest/integration/junit.xml
retention-days: 7
- name: Create archive
run: just archive
- name: Upload artifacts
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: actions/upload-artifact@v4
with:
name: bcvk-binary
path: |
target/bcvk-*.tar.gz
target/bcvk-*.tar.gz.sha256
retention-days: 7