34
34
run : docker image ls
35
35
36
36
# Job Description: Performs the Peer Connection Test between each combination of the client and server for each library.
37
- interop-tests :
37
+ interoptests :
38
38
runs-on : ubuntu-latest
39
+
40
+ outputs :
41
+ result_sipsorcery_sipsorcery : ${{ steps.set-output.outputs.result_sipsorcery_sipsorcery }}
42
+ result_sipsorcery_aiortc : ${{ steps.set-output.outputs.result_sipsorcery_aiortc }}
43
+ result_sipsorcery_werift : ${{ steps.set-output.outputs.result_sipsorcery_werift }}
44
+ result_sipsorcery_pion : ${{ steps.set-output.outputs.result_sipsorcery_pion }}
45
+ result_sipsorcery_libdatachannel : ${{ steps.set-output.outputs.result_sipsorcery_libdatachannel }}
46
+ result_aiortc_sipsorcery : ${{ steps.set-output.outputs.result_aiortc_sipsorcery }}
47
+ result_aiortc_aiortc : ${{ steps.set-output.outputs.result_aiortc_aiortc }}
48
+ result_aiortc_werift : ${{ steps.set-output.outputs.result_aiortc_werift }}
49
+ result_aiortc_pion : ${{ steps.set-output.outputs.result_aiortc_pion }}
50
+ result_aiortc_libdatachannel : ${{ steps.set-output.outputs.result_aiortc_libdatachannel }}
51
+ result_werift_sipsorcery : ${{ steps.set-output.outputs.result_werift_sipsorcery }}
52
+ result_werift_aiortc : ${{ steps.set-output.outputs.result_werift_aiortc }}
53
+ result_werift_werift : ${{ steps.set-output.outputs.result_werift_werift }}
54
+ result_werift_pion : ${{ steps.set-output.outputs.result_werift_pion }}
55
+ result_werift_libdatachannel : ${{ steps.set-output.outputs.result_werift_libdatachannel }}
56
+ result_pion_sipsorcery : ${{ steps.set-output.outputs.result_pion_sipsorcery }}
57
+ result_pion_aiortc : ${{ steps.set-output.outputs.result_pion_aiortc }}
58
+ result_pion_werift : ${{ steps.set-output.outputs.result_pion_werift }}
59
+ result_pion_pion : ${{ steps.set-output.outputs.result_pion_pion }}
60
+ result_pion_libdatachannel : ${{ steps.set-output.outputs.result_pion_libdatachannel }}
61
+ result_libdatachannel_sipsorcery : ${{ steps.set-output.outputs.result_libdatachannel_sipsorcery }}
62
+ result_libdatachannel_aiortc : ${{ steps.set-output.outputs.result_libdatachannel_aiortc }}
63
+ result_libdatachannel_werift : ${{ steps.set-output.outputs.result_libdatachannel_werift }}
64
+ result_libdatachannel_pion : ${{ steps.set-output.outputs.result_libdatachannel_pion }}
65
+ result_libdatachannel_libdatachannel : ${{ steps.set-output.outputs.result_libdatachannel_libdatachannel }}
66
+ result_gstreamer_sipsorcery : ${{ steps.set-output.outputs.result_gstreamer_sipsorcery }}
67
+ result_gstreamer_aiortc : ${{ steps.set-output.outputs.result_gstreamer_aiortc }}
68
+ result_gstreamer_werift : ${{ steps.set-output.outputs.result_gstreamer_werift }}
69
+ result_gstreamer_pion : ${{ steps.set-output.outputs.result_gstreamer_pion }}
70
+ result_gstreamer_libdatachannel : ${{ steps.set-output.outputs.result_gstreamer_libdatachannel }}
71
+ result_libwebrtc_sipsorcery : ${{ steps.set-output.outputs.result_libwebrtc_sipsorcery }}
72
+ result_libwebrtc_aiortc : ${{ steps.set-output.outputs.result_libwebrtc_aiortc }}
73
+ result_libwebrtc_werift : ${{ steps.set-output.outputs.result_libwebrtc_werift }}
74
+ result_libwebrtc_pion : ${{ steps.set-output.outputs.result_libwebrtc_pion }}
75
+ result_libwebrtc_libdatachannel : ${{ steps.set-output.outputs.result_libwebrtc_libdatachannel }}
76
+ result_kurento_sipsorcery : ${{ steps.set-output.outputs.result_kurento_sipsorcery }}
77
+ result_kurento_aiortc : ${{ steps.set-output.outputs.result_kurento_aiortc }}
78
+ result_kurento_werift : ${{ steps.set-output.outputs.result_kurento_werift }}
79
+ result_kurento_pion : ${{ steps.set-output.outputs.result_kurento_pion }}
80
+ result_kurento_libdatachannel : ${{ steps.set-output.outputs.result_kurento_libdatachannel }}
81
+ result_janus_sipsorcery : ${{ steps.set-output.outputs.result_janus_sipsorcery }}
82
+ result_janus_aiortc : ${{ steps.set-output.outputs.result_janus_aiortc }}
83
+ result_janus_werift : ${{ steps.set-output.outputs.result_janus_werift }}
84
+ result_janus_pion : ${{ steps.set-output.outputs.result_janus_pion }}
85
+ result_janus_libdatachannel : ${{ steps.set-output.outputs.result_janus_libdatachannel }}
86
+
39
87
strategy :
40
88
matrix :
41
89
server : ["sipsorcery", "aiortc", "werift", "pion", "libdatachannel", "gstreamer", "libwebrtc", "kurento", "janus"] # "webrtc-rs"
@@ -60,52 +108,43 @@ jobs:
60
108
echo "Check connection for ${{ matrix.server }} server and ${{ matrix.client }} client result $result."
61
109
echo "::set-output name=TEST_RESULT::$result"
62
110
continue-on-error : true
63
- - name : Record result
111
+
112
+ - name : Set output results
113
+ id : set-output
64
114
run : |
65
115
echo "Result for ${{ matrix.server }} server and ${{ matrix.client }} client, outcome ${{ steps.check_connection.outcome }}, result ${{ steps.check_connection.outputs.TEST_RESULT }}."
66
- echo "${{ matrix.server }},${{ matrix.client }},${{ steps.check_connection.outputs.TEST_RESULT }}" >> ${{ matrix.server }}_${{ matrix.client }}_result.csv
67
- - name : Upload result
68
- uses : actions/upload-artifact@v4
69
- with :
70
- name : results-${{ matrix.server }}-${{ matrix.client }}-${{ github.run_id }}
71
- path : |
72
- ${{ matrix.server }}_${{ matrix.client }}_result.csv
116
+ echo "result_${{ matrix.server }}_${{ matrix.client }}=${{ steps.check_connection.outputs.TEST_RESULT }}" >> "$GITHUB_OUTPUT"
73
117
74
118
# Job Description: Collates the results of the interop tests into a mark down table.
75
119
collate :
76
120
runs-on : ubuntu-latest
77
- needs : [interop-tests ]
121
+ needs : [interoptests ]
78
122
steps :
79
123
- uses : actions/checkout@v2
80
- with :
81
- ref : testresults
82
- - uses : actions/setup-python@v2
83
- with :
84
- python-version : " 3.x"
85
- - name : Download results
86
- uses : actions/download-artifact@v4
87
- with :
88
- name : results
89
- - name : Collate result files
124
+ - name : Create results file from interop test outputs
90
125
run : |
91
- python --version
92
- pip install 'weasyprint==52.4'
93
- python test/collate-results.py PeerConnection
94
- python test/collate-results.py PeerConnection > PeerConnection_test_results.md
126
+ echo "Collating...."
127
+
128
+ echo "raw=${{ toJSON(needs.interoptests.outputs) }}"
129
+ results='${{ toJSON(needs.interoptests.outputs) }}'
130
+ echo "results=${results}"
131
+
132
+ echo "| Server | Client | Test Result |" > PeerConnection_test_results.md
133
+ echo "|--------|--------|-------------|" >> PeerConnection_test_results.md
134
+
135
+ echo "${results}" | jq -r 'to_entries | .[] |
136
+ "\(.key): \(.value)" |
137
+ capture("result_(?<server>.+)_(?<client>.+): (?<value>.+)") |
138
+ "| \(.server) | \(.client) | \(.value) |"' >> PeerConnection_test_results.md
139
+
95
140
cat PeerConnection_test_results.md
96
- - name : Azure CLI script to upload results to Azure blob storage
97
- if : github.event_name != 'pull_request'
98
- uses : azure/CLI@v1
99
- with :
100
- inlineScript : |
101
- az storage blob upload --account-name webrtctestresults --container-name githubactions --name PeerConnection_test_results.md --file PeerConnection_test_results.md --account-key ${{ secrets.Azure_Key }} --overwrite
102
- az storage blob upload --account-name webrtctestresults --container-name githubactions --name PeerConnection_test_results.png --file PeerConnection_test_results.png --account-key ${{ secrets.Azure_Key }} --overwrite
141
+
103
142
- name : Commit the results to the git repository
104
143
if : github.event_name != 'pull_request'
105
144
run : |
106
145
git config user.name github-actions
107
146
git config user.email [email protected]
108
147
git pull
109
- git add PeerConnection_test_results.md PeerConnection_test_results.png
110
- git commit PeerConnection_test_results.md PeerConnection_test_results.png -m "Automated peer connection test results."
148
+ git add PeerConnection_test_results.md
149
+ git commit PeerConnection_test_results.md -m "Automated peer connection test results."
111
150
git push
0 commit comments