15
15
runs-on : ubuntu-22.04
16
16
17
17
steps :
18
- - name : Checkout
18
+ - name : Checkout UMF
19
19
uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
20
20
with :
21
21
fetch-depth : 0
@@ -25,16 +25,20 @@ jobs:
25
25
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
26
26
sudo udevadm control --reload-rules
27
27
sudo udevadm trigger --name-match=kvm
28
- - name : Install qemu
29
- run : |
30
- sudo apt update && sudo apt install -y qemu-system genisoimage qemu-utils
31
- - name : Install libvirt and script dependencies
28
+
29
+ - name : Install dependencies
32
30
run : |
33
- sudo apt-get install -y libvirt-clients libvirt-daemon-system libvirt-daemon virtinst bridge-utils
31
+ sudo apt-get update
32
+ sudo apt-get install -y qemu-system genisoimage qemu-utils \
33
+ libvirt-clients libvirt-daemon-system libvirt-daemon virtinst bridge-utils
34
34
pip install -r scripts/qemu/requirements.txt
35
- sudo usermod -a -G kvm,libvirt $USER
35
+
36
+ - name : Add user to kvm group
37
+ run : sudo usermod -a -G kvm,libvirt $USER
38
+
36
39
- name : Run ssh-keygen
37
40
run : ssh-keygen -b 4096 -N '' -f ~/.ssh/id_rsa
41
+
38
42
- name : Generate iso with user info
39
43
run : |
40
44
pub_key=$(cat ~/.ssh/id_rsa.pub)
@@ -69,11 +73,14 @@ jobs:
69
73
EOF
70
74
71
75
sudo -Sk genisoimage -output ubuntu-cloud-init.iso -volid cidata -joliet -rock ./user-data ./meta-data
76
+
72
77
- name : Download ubuntu image
73
78
run : wget https://cloud-images.ubuntu.com/releases/lunar/release/ubuntu-23.04-server-cloudimg-amd64.img
79
+
74
80
- name : Resize image
75
81
run : qemu-img resize ./ubuntu-23.04-server-cloudimg-amd64.img +4G
76
- - name : Build
82
+
83
+ - name : Build UMF in QEMU
77
84
run : |
78
85
scripts/qemu/start_qemu.sh scripts/qemu/configs/default.xml
79
86
@@ -85,27 +92,22 @@ jobs:
85
92
86
93
scp -P 2222 ${{github.workspace}}/scripts/qemu/run-build.sh [email protected] :/home/cxltest
87
94
scp -P 2222 ${{github.workspace}}/scripts/qemu/run-tests.sh [email protected] :/home/cxltest
88
- ssh [email protected] -p 2222 -t "bash /home/cxltest/run-build.sh https://github.com/$CI_REPO ${{env.CI_BRANCH}}"
89
95
96
+ ssh [email protected] -p 2222 -t "bash /home/cxltest/run-build.sh https://github.com/$CI_REPO ${{env.CI_BRANCH}}"
90
97
ssh [email protected] -p 2222 -t "sudo shutdown -h now"
91
98
92
- - name : Run tests
99
+ - name : Run tests in QEMU
93
100
run : |
94
101
for config_file in scripts/qemu/configs/*.xml; do
95
102
config_name=$(basename $config_file .xml)
96
103
97
- echo testing $config_name
98
104
while ps -aux | grep qemu-system-x86_64 | grep -q -v grep; do
99
105
echo "Waiting for QEMU to shut down..."
100
106
sleep 5
101
107
done
108
+
109
+ echo "\n ### Testing ${config_name} ###"
102
110
scripts/qemu/start_qemu.sh $config_file
103
-
104
- if [ ${{ github.event_name }} = 'pull_request' ]; then
105
- CI_REPO="${{ github.event.pull_request.head.repo.full_name }}"
106
- else
107
- CI_REPO="$GITHUB_REPOSITORY"
108
- fi
109
111
110
112
ssh [email protected] -p 2222 -t "bash /home/cxltest/run-tests.sh"
111
113
ssh [email protected] -p 2222 -t "sudo shutdown -h now"
0 commit comments