Increase backoff #188
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Run SSD and ZNS Workloads | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| workflow_dispatch: # Allows manual runs | |
| jobs: | |
| run-qemu-ubuntu: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Install QEMU | |
| run: | | |
| sudo apt update >/dev/null | |
| sudo apt install -y qemu-system-x86 qemu-utils cloud-utils wget sshpass >/dev/null | |
| - name: Download Ubuntu Cloud Image | |
| run: | | |
| wget -O /tmp/ubuntu.qcow2 https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img -o /dev/null | |
| - name: Resize Ubuntu QEMU Disk | |
| run: | | |
| qemu-img resize /tmp/ubuntu.qcow2 12G | |
| - name: Create Cloud-Init Disk | |
| run: | | |
| cat > user-data <<EOF | |
| #cloud-config | |
| password: ubuntu | |
| chpasswd: { expire: False } | |
| ssh_pwauth: True | |
| EOF | |
| cloud-localds /tmp/cloud-init.iso user-data | |
| - name: Run QEMU VM with Ubuntu | |
| run: | | |
| sudo qemu-system-x86_64 \ | |
| -enable-kvm \ | |
| -m 12G \ | |
| -smp 2 \ | |
| -cpu host \ | |
| -drive file=/tmp/ubuntu.qcow2,format=qcow2,if=virtio \ | |
| -drive file=/tmp/cloud-init.iso,format=raw,if=virtio \ | |
| -net user,hostfwd=tcp::2222-:22 \ | |
| -net nic \ | |
| -nographic & | |
| # Wait for SSH to be available | |
| sleep 60 | |
| - name: Install deps | |
| run: | | |
| mkdir ~/.ssh | |
| ssh-keyscan -H 127.0.0.1 >> ~/.ssh/known_hosts | |
| sshpass -p "ubuntu" ssh -o StrictHostKeyChecking=no -p 2222 ubuntu@127.0.0.1 'sudo apt update && sudo apt install -y \ | |
| linux-modules-extra-$(uname -r) \ | |
| autoconf \ | |
| automake \ | |
| libtool \ | |
| build-essential \ | |
| meson \ | |
| ninja-build \ | |
| pkg-config \ | |
| clang \ | |
| git \ | |
| wget \ | |
| libglib2.0-dev' | |
| - name: Build Code in QEMU | |
| run: | | |
| sshpass -p "ubuntu" scp -o StrictHostKeyChecking=no -P 2222 -r $GITHUB_WORKSPACE ubuntu@127.0.0.1:/home/ubuntu/ZNWorkload | |
| sshpass -p "ubuntu" ssh -o StrictHostKeyChecking=no -p 2222 ubuntu@127.0.0.1 << 'EOF' | |
| cd ZNWorkload | |
| ./build-deps.sh | |
| find . | |
| meson setup buildDir -Dverify=true -Ddebugging=true -DBLOCK_ZONE_CAPACITY=1048576 | |
| meson compile -C buildDir | |
| EOF | |
| - name: Run ZNS | |
| run: | | |
| sshpass -p "ubuntu" ssh -o StrictHostKeyChecking=no -p 2222 ubuntu@127.0.0.1 << 'EOF' | |
| set -e # Exit on first error | |
| cd ZNWorkload | |
| sudo ./scripts/nullblk.sh 4096 1 0 14 "zns" | |
| sudo ./buildDir/src/zncache /dev/nullb0 524288 2 | |
| EOF | |
| - name: Run SSD | |
| run: | | |
| sshpass -p "ubuntu" ssh -o StrictHostKeyChecking=no -p 2222 ubuntu@127.0.0.1 << 'EOF' | |
| set -e # Exit on first error | |
| cd ZNWorkload | |
| sudo ./scripts/nullblk.sh 4096 1 0 14 "ssd" | |
| sudo ./buildDir/src/zncache /dev/nullb1 524288 2 | |
| EOF | |
| - name: Run Test Suite | |
| run: | | |
| sshpass -p "ubuntu" ssh -o StrictHostKeyChecking=no -p 2222 ubuntu@127.0.0.1 << 'EOF' | |
| ls /dev/nullb* | |
| cd ZNWorkload | |
| meson test -C buildDir --list | |
| if ! sudo meson test -C buildDir; then | |
| [ -f ./buildDir/meson-logs/testlog.txt ] && cat ./buildDir/meson-logs/testlog.txt | |
| exit 1 | |
| fi | |
| [ -f ./buildDir/meson-logs/testlog.txt ] && cat ./buildDir/meson-logs/testlog.txt | |
| EOF |