99 - cron : ' 38 2 * * *'
1010
1111jobs :
12- build :
12+ ubuntu_build :
13+ name : ubuntu_build
14+ runs-on : ubuntu-latest
15+ steps :
16+ - uses : actions/checkout@v6
17+ - name : Install build-tools
18+ run : sudo apt-get update && sudo apt-get install -y build-essential cmake python3-pandas python3-lxml
19+ - name : configure
20+ run : >
21+ mkdir build &&
22+ cd build &&
23+ cmake ..
24+ -DBUILDING_TESTS=1
25+ -DINTEGRATION_TESTS=1
26+ -DWITH_ASAN=ON
27+ -DPRIMARY_CLIENT_STRICT_PARSING_=ON
28+ -DCMAKE_COMPILE_WARNING_AS_ERROR=ON
29+ -DCHECK_RTDE_DOCS_RECIPE=ON
30+ env :
31+ CXXFLAGS : -g -O2 -fprofile-arcs -ftest-coverage
32+ CFLAGS : -g -O2 -fprofile-arcs -ftest-coverage
33+ LDFLAGS : -fprofile-arcs -ftest-coverage
34+ - name : build
35+ id : build
36+ run : cmake --build build --config Debug
37+ - name : Archive CMake build directory
38+ if : steps.build.outcome == 'success'
39+ run : tar -czf build.tar.gz build
40+ - name : Upload CMake build archive
41+ if : steps.build.outcome == 'success'
42+ uses : actions/upload-artifact@v7
43+ with :
44+ path : build.tar.gz
45+ if-no-files-found : error
46+ retention-days : 5
47+ archive : false
48+
49+ run_tests :
1350 timeout-minutes : 60
1451 runs-on : ubuntu-latest
15- name : build (${{matrix.env.URSIM_VERSION}}-${{matrix.env.ROBOT_MODEL}})
52+ name : run_tests (${{matrix.env.URSIM_VERSION}}-${{matrix.env.ROBOT_MODEL}})
53+ needs : ubuntu_build
1654 strategy :
1755 fail-fast : false
1856 matrix :
4684 ROBOT_MODEL : ${{matrix.env.ROBOT_MODEL}}
4785 URSIM_VERSION : ${{matrix.env.URSIM_VERSION}}
4886 PROGRAM_FOLDER : ${{matrix.env.PROGRAM_FOLDER}}
49- - name : install-pips
50- run : pip install pandas lxml
5187 - id : check_polyscopex
5288 run : |
5389 if [[ "${{matrix.env.URSIM_VERSION}}" == "10."* ]]; then
@@ -57,35 +93,26 @@ jobs:
5793 fi
5894 - name : setup chrome
5995 uses : browser-actions/setup-chrome@v2
60- - name : configure
61- run : >
62- mkdir build &&
63- cd build &&
64- cmake ..
65- -DBUILDING_TESTS=1
66- -DINTEGRATION_TESTS=1
67- -DWITH_ASAN=ON
68- -DPRIMARY_CLIENT_STRICT_PARSING=ON
69- -DCMAKE_COMPILE_WARNING_AS_ERROR=ON
70- -DCHECK_RTDE_DOCS_RECIPE=ON
71- env :
72- CXXFLAGS : -g -O2 -fprofile-arcs -ftest-coverage
73- CFLAGS : -g -O2 -fprofile-arcs -ftest-coverage
74- LDFLAGS : -fprofile-arcs -ftest-coverage
75- - name : build
76- id : build
77- run : cmake --build build --config Debug
96+ - name : Download CMake build archive
97+ uses : actions/download-artifact@v8
98+ with :
99+ name : build.tar.gz
100+ - name : Extract CMake build directory
101+ run : tar -xzf build.tar.gz
78102 - name : Create folder for test artifacts
79103 run : mkdir -p test_artifacts
80104 - name : Access PolyScope
81105 if : ${{ steps.check_polyscopex.outputs.is_polyscopex == 'true' }}
82106 run : chrome --no-sandbox --disable-settuid-sandbox --headless=new 192.168.56.101 &
107+ - name : Install Python dependencies
108+ run : sudo apt-get update && sudo apt-get install -y python3-pandas python3-lxml
109+ - name : Generate rtde outputs lists
110+ run : python3 tests/resources/generate_rtde_outputs.py
83111 - name : test
84112 run : cd build && ctest --output-on-failure --output-junit junit.xml
85113 env :
86114 URSIM_VERSION : ${{matrix.env.URSIM_VERSION}}
87115 - name : Upload test results to Codecov
88- if : ${{ !cancelled() && steps.build.outcome == 'success' }}
89116 uses : codecov/codecov-action@v6
90117 with :
91118 fail_ci_if_error : true
@@ -96,13 +123,10 @@ jobs:
96123 - name : run examples
97124 run : ./run_examples.sh "192.168.56.101" 1
98125 - name : install gcovr
99- if : ${{ !cancelled() && steps.build.outcome == 'success' }}
100126 run : sudo apt-get install -y gcovr
101127 - name : gcovr
102- if : ${{ !cancelled() && steps.build.outcome == 'success' }}
103128 run : cd build && gcovr -r .. --xml coverage.xml --gcov-ignore-parse-errors negative_hits.warn_once_per_file --exclude "../3rdparty"
104129 - name : Upload coverage reports to Codecov with GitHub Action
105- if : ${{ !cancelled() && steps.build.outcome == 'success' }}
106130 uses : codecov/codecov-action@v6
107131 with :
108132 fail_ci_if_error : true
@@ -150,6 +174,127 @@ jobs:
150174 if-no-files-found : warn
151175 retention-days : 10
152176
177+ robot_model_check :
178+ timeout-minutes : 60
179+ runs-on : ubuntu-latest
180+ needs : ubuntu_build
181+ name : check_model (${{matrix.env.URSIM_VERSION}}-${{matrix.env.ROBOT_MODEL}})
182+ strategy :
183+ fail-fast : false
184+ matrix :
185+ env :
186+ - ROBOT_MODEL : ' ur3'
187+ URSIM_VERSION : ' 3.14.3'
188+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/cb3'
189+ - ROBOT_MODEL : ' ur5'
190+ URSIM_VERSION : ' 3.15.8'
191+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/cb3'
192+ - ROBOT_MODEL : ' ur10'
193+ URSIM_VERSION : ' 3.15.8'
194+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/cb3'
195+ - ROBOT_MODEL : ' ur3e'
196+ URSIM_VERSION : ' 5.9.4'
197+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/e-series'
198+ - ROBOT_MODEL : ' ur5e'
199+ URSIM_VERSION : ' 5.12.8'
200+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/e-series'
201+ - ROBOT_MODEL : ' ur7e'
202+ URSIM_VERSION : ' 5.22.2'
203+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/e-series'
204+ - ROBOT_MODEL : ' ur10e'
205+ URSIM_VERSION : ' 5.15.2'
206+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/e-series'
207+ - ROBOT_MODEL : ' ur12e'
208+ URSIM_VERSION : ' 5.25.1'
209+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/e-series'
210+ - ROBOT_MODEL : ' ur16e'
211+ URSIM_VERSION : ' 5.25.1'
212+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/e-series'
213+ - ROBOT_MODEL : ' ur8long'
214+ URSIM_VERSION : ' 5.25.1'
215+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/e-series'
216+ - ROBOT_MODEL : ' ur15'
217+ URSIM_VERSION : ' 5.25.1'
218+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/e-series'
219+ - ROBOT_MODEL : ' ur18'
220+ URSIM_VERSION : ' 5.25.1'
221+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/e-series'
222+ - ROBOT_MODEL : ' ur20'
223+ URSIM_VERSION : ' 5.25.1'
224+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/e-series'
225+ - ROBOT_MODEL : ' ur30'
226+ URSIM_VERSION : ' 5.25.1'
227+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/e-series'
228+ - ROBOT_MODEL : ' ur3e'
229+ URSIM_VERSION : ' 10.11.0'
230+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/polyscopex'
231+ - ROBOT_MODEL : ' ur5e'
232+ URSIM_VERSION : ' 10.11.0'
233+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/polyscopex'
234+ - ROBOT_MODEL : ' ur7e'
235+ URSIM_VERSION : ' 10.11.0'
236+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/polyscopex'
237+ - ROBOT_MODEL : ' ur10e'
238+ URSIM_VERSION : ' 10.11.0'
239+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/polyscopex'
240+ - ROBOT_MODEL : ' ur12e'
241+ URSIM_VERSION : ' 10.12.1'
242+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/polyscopex'
243+ - ROBOT_MODEL : ' ur16e'
244+ URSIM_VERSION : ' 10.12.1'
245+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/polyscopex'
246+ - ROBOT_MODEL : ' ur8long'
247+ URSIM_VERSION : ' 10.12.1'
248+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/polyscopex'
249+ - ROBOT_MODEL : ' ur15'
250+ URSIM_VERSION : ' 10.12.1'
251+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/polyscopex'
252+ - ROBOT_MODEL : ' ur18'
253+ URSIM_VERSION : ' 10.12.1'
254+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/polyscopex'
255+ - ROBOT_MODEL : ' ur20'
256+ URSIM_VERSION : ' 10.12.1'
257+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/polyscopex'
258+ - ROBOT_MODEL : ' ur30'
259+ URSIM_VERSION : ' 10.12.1'
260+ PROGRAM_FOLDER : ' tests/resources/dockerursim/programs/polyscopex'
261+
262+ steps :
263+ - uses : actions/checkout@v6
264+ - name : start ursim
265+ run : |
266+ scripts/start_ursim.sh -m $ROBOT_MODEL -v $URSIM_VERSION -p $PROGRAM_FOLDER -d -f DISABLED
267+ env :
268+ DOCKER_RUN_OPTS : --network ursim_net
269+ ROBOT_MODEL : ${{matrix.env.ROBOT_MODEL}}
270+ URSIM_VERSION : ${{matrix.env.URSIM_VERSION}}
271+ PROGRAM_FOLDER : ${{matrix.env.PROGRAM_FOLDER}}
272+ - name : Download CMake build archive
273+ uses : actions/download-artifact@v8
274+ with :
275+ name : build.tar.gz
276+ - name : Extract CMake build directory
277+ run : tar -xzf build.tar.gz
278+ - name : inspect build folder
279+ run : ls -la build && ls -la build/tests
280+ - name : test robot type
281+ run : cd build && ctest -R PrimaryClientTest.test_robot_type --verbose --output-junit junit.xml
282+ env :
283+ URSIM_VERSION : ${{matrix.env.URSIM_VERSION}}
284+ ROBOT_MODEL : ${{matrix.env.ROBOT_MODEL}}
285+ - name : install gcovr
286+ run : sudo apt-get install -y gcovr
287+ - name : gcovr
288+ run : cd build && gcovr -r .. --xml coverage.xml --gcov-ignore-parse-errors negative_hits.warn_once_per_file --exclude "../3rdparty"
289+ - name : Upload coverage reports to Codecov with GitHub Action
290+ uses : codecov/codecov-action@v6
291+ with :
292+ fail_ci_if_error : true
293+ files : build/coverage.xml
294+ flags : check_version_${{ matrix.env.ROBOT_MODEL }}-${{ matrix.env.URSIM_VERSION }}
295+ env :
296+ CODECOV_TOKEN : ${{ secrets.CODECOV_TOKEN }}
297+
153298 test_start_ursim :
154299 runs-on : ubuntu-latest
155300 steps :
0 commit comments