1
- name : " Scan USB devices "
1
+ name : " WiFi performance test "
2
2
on :
3
- workflow_dispatch : # Manually triggered via GitHub Actions UI
3
+ workflow_dispatch :
4
4
schedule :
5
5
- cron : ' 0 8 * * *'
6
6
28
28
echo "${delimiter}" >> "${GITHUB_OUTPUT}"
29
29
30
30
gradle :
31
- name : " Testing ${{ matrix.json.name }}"
31
+ name : " ${{ matrix.json.name }} (${{ matrix.json.device_class }}) "
32
32
runs-on : " ubuntu-24.04"
33
33
needs : prepare
34
34
if : ${{ needs.prepare.outputs.DEPLOYMENT_MATRIX != '[]' }}
@@ -54,30 +54,44 @@ jobs:
54
54
known_hosts : ${{ secrets.KNOWN_HOSTS_ARMBIAN_CI }}
55
55
if_key_exists : replace
56
56
57
- - name : " Generate YAML for wireless device"
57
+ - name : " Prepare device variables"
58
+ id : vars
58
59
shell : bash
59
60
run : |
60
61
61
- DEVICE=$(echo "wlx${{ matrix.json.serial }}" | sed "s/://g")
62
+ # set the device IP address
63
+ # set the device name
64
+ echo "IP_ADDR=$(echo '${{ matrix.json.device_ip }}' | cut -d'/' -f1)" >> $GITHUB_ENV
65
+ echo "DEVICE=wlx$(echo '${{ matrix.json.serial }}' | sed 's/://g')" >> $GITHUB_ENV
66
+
67
+ - name : " Generate YAML for wireless device"
68
+ shell : bash
69
+ run : |
62
70
71
+ # determine the access point name
72
+ # based on the device class
73
+ # AX - 6GHz
74
+ # AC600 - 5GHz
75
+ # AC - 2.4GHz
63
76
case "${{ matrix.json.device_class }}" in
64
- "AX")
65
- ACCESS_POINT="GOSTJE60"
66
- ;;
67
- "AC600")
68
- ACCESS_POINT="GOSTJE50"
69
- ;;
70
- *)
71
- ACCESS_POINT="GOSTJE24"
72
- ;;
77
+ AX) ACCESS_POINT="GOSTJE60" ;;
78
+ AC600) ACCESS_POINT="GOSTJE50" ;;
79
+ *) ACCESS_POINT="GOSTJE24" ;;
73
80
esac
74
81
82
+ # generate the YAML file
83
+ # for the wireless device
84
+ # the file is used to configure
85
+ # the wireless device
86
+ # to connect to the access point
87
+ # and to set the IP address
88
+ # and the MAC address
75
89
cat > wireless.yaml <<- EOT
76
90
network:
77
91
version: 2
78
92
renderer: networkd
79
93
wifis:
80
- ${DEVICE}:
94
+ ${{ env. DEVICE } }:
81
95
addresses:
82
96
- "10.0.50.50/24"
83
97
nameservers:
@@ -94,26 +108,23 @@ jobs:
94
108
password: "password"
95
109
EOT
96
110
97
- - name : " Enable wireless adapter on ${{ matrix.json.device_ip }}"
111
+ - name : " Enable wireless adapter on ${{ env.IP_ADDR }}"
98
112
shell : bash
99
113
run : |
100
114
101
- ip_addr=$(echo "${{ matrix.json.device_ip }}" | sed 's#/.*##')
102
- scp wireless.yaml ci@${ip_addr}:/tmp
103
- ssh ci@${ip_addr} "sudo mv /tmp/wireless.yaml /etc/netplan/"
104
- ssh ci@${ip_addr} "sudo chmod 600 /etc/netplan/*"
105
- ssh ci@${ip_addr} "sudo netplan apply"
115
+ scp wireless.yaml ci@${{ env.IP_ADDR }}:/tmp
116
+ ssh ci@${{ env.IP_ADDR }} "sudo mv /tmp/wireless.yaml /etc/netplan/"
117
+ ssh ci@${{ env.IP_ADDR }} "sudo chmod 600 /etc/netplan/*"
118
+ ssh ci@${{ env.IP_ADDR }} "sudo netplan apply"
106
119
107
120
- name : " Make sure its connected"
108
121
timeout-minutes : 1
109
122
shell : bash
110
123
run : |
111
124
112
- ip_addr=$(echo "${{ matrix.json.device_ip }}" | sed 's#/.*##')
113
- DEVICE=$(echo "wlx${{ matrix.json.serial }}" | sed "s/://g")
114
125
while true; do
115
- #CONNECTION=$(ssh ci@${ip_addr} " nmcli -t -f NAME connection show --active | grep ${DEVICE} || true")
116
- CONNECTION=$(ssh ci@${ip_addr} "networkctl | grep ${DEVICE} | grep routable || true")
126
+ # nmcli -t -f NAME connection show --active | grep ${DEVICE}
127
+ CONNECTION=$(ssh ci@${{ env.IP_ADDR }} "networkctl | grep ${{ env. DEVICE } } | grep routable || true")
117
128
if [[ -n "${CONNECTION}" ]]; then
118
129
break
119
130
fi
@@ -124,26 +135,22 @@ jobs:
124
135
shell : bash
125
136
run : |
126
137
127
- ip_addr=$(echo "${{ matrix.json.device_ip }}" | sed 's#/.*##')
128
- DEVICE=$(echo "wlx${{ matrix.json.serial }}" | sed "s/://g")
129
- echo "DEVICE=$DEVICE" >> $GITHUB_ENV
130
- rm -rf test; mkdir -p test
131
- numbers=$(ssh ci@${ip_addr} "iperf3 -R -c 10.0.60.10 -B 10.0.50.50 -t 5 -J | jq '.intervals[] .sum .bits_per_second' | LC_ALL=C datamash median 1 | cut -d"-" -f2")
138
+ mkdir -p test
139
+ numbers=$(ssh ci@${{ env.IP_ADDR }} "iperf3 -R -c 10.0.60.10 -B 10.0.50.50 -t 5 -J | jq '.intervals[] .sum .bits_per_second' | LC_ALL=C datamash median 1 | cut -d"-" -f2")
132
140
mbits=$(echo $numbers | LC_ALL=C awk '{$1/=1048576;printf "%.0f Mbps\n",$1}')
133
- echo "|${{ matrix.json.name }}|${{ matrix.json.device_type }}| ${{ matrix.json.serial }} | ${{ matrix.json.device_class }} | ${mbits} |" > test/${ DEVICE}.iperf
141
+ echo "|${{ matrix.json.name }}|${{ matrix.json.device_type }}| ${{ matrix.json.serial }} | ${{ matrix.json.device_class }} | ${mbits} |" > test/ci@${{ env. DEVICE } }.iperf
134
142
135
143
# get Armbian version and kernel
136
- echo "$(ssh ci@${ip_addr} "cat /etc/armbian-release | grep VERSION")" > test/${ DEVICE}.system
137
- echo "$(ssh ci@${ip_addr} "cat /etc/armbian-release | grep ^ARCH")" > test/${ DEVICE}.system
138
- echo "KERNEL=$(ssh ci@${ip_addr} "uname -r")" >> test/${ DEVICE}.system
144
+ echo "$(ssh ci@${{ env.IP_ADDR }} "cat /etc/armbian-release | grep VERSION")" >> test/ci@${{ env. DEVICE } }.system
145
+ echo "$(ssh ci@${{ env.IP_ADDR }} "cat /etc/armbian-release | grep ^ARCH")" >> test/ci@${{ env. DEVICE } }.system
146
+ echo "KERNEL=$(ssh ci@${{ env.IP_ADDR }} "uname -r")" >> test/ci@${{ env. DEVICE } }.system
139
147
140
148
- name : " Remove adapter"
141
149
shell : bash
142
150
run : |
143
151
144
- ip_addr=$(echo "${{ matrix.json.device_ip }}" | sed 's#/.*##')
145
- ssh ci@${ip_addr} "sudo rm /etc/netplan/wireless.yaml"
146
- ssh ci@${ip_addr} "sudo netplan apply"
152
+ ssh ci@${{ env.IP_ADDR }} "sudo rm /etc/netplan/wireless.yaml"
153
+ ssh ci@${{ env.IP_ADDR }} "sudo netplan apply"
147
154
148
155
- name : " Upload test summary"
149
156
uses : actions/upload-artifact@v4
@@ -184,7 +191,7 @@ jobs:
184
191
run : |
185
192
186
193
source test/*.system
187
- echo "# USB dongles performance test:" >> $GITHUB_STEP_SUMMARY
194
+ echo "# WiFi performance test:" >> $GITHUB_STEP_SUMMARY
188
195
echo "Armbian: $VERSION - Kernel: $KERNEL - Architecture: $ARCH" >> $GITHUB_STEP_SUMMARY
189
196
echo "|Name|Chip|MAC|Class|Average Iperf|" >> $GITHUB_STEP_SUMMARY
190
197
echo "|:---|:---|:---|:---|---:|" >> $GITHUB_STEP_SUMMARY
0 commit comments