diff --git a/.github/workflows/library-imaginary1.2.yaml b/.github/workflows/library-imaginary1.2.yaml index 7f285656..530ef02d 100644 --- a/.github/workflows/library-imaginary1.2.yaml +++ b/.github/workflows/library-imaginary1.2.yaml @@ -78,3 +78,34 @@ jobs: with: name: index.unikraft.io/unikraft.org/imaginary:1.2 push: true + + run: + name: Test imaginary:1.2 (Local build) + needs: [build] + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Install kraft CLI + run: | + echo "deb [trusted=yes] https://deb.pkg.kraftkit.sh/ /" | sudo tee /etc/apt/sources.list.d/kraftkit.list + sudo apt-get update + sudo apt-get install -y kraftkit + - name: Build, run and validate unikernel + run: | + set -euo pipefail + sudo chmod 666 /dev/kvm + cd library/imaginary/1.2 + echo "Build imaginary:1.2 unikernel" + kraft build --no-cache --no-update --plat qemu --arch x86_64 + + echo "Run imaginary:1.2 unikernel" + kraft run --rm -M 256M --plat qemu --arch x86_64 . & + PID=$! + sleep 5 + + echo "imaginary:1.2 unikernel started successfully locally" + + echo "Cleanup imaginary:1.2 unikernel" + sudo kill "$PID" || true