@@ -224,19 +224,47 @@ jobs:
224224 slug : embedded-dev-research/ITLabAI
225225
226226 evaluate-model :
227- runs-on : ubuntu-latest
228- needs : [build-linux]
229- permissions :
230- contents : write
227+ runs-on : ubuntu-latest
228+ needs : [build-linux]
229+ permissions :
230+ contents : write
231231
232- steps :
232+ steps :
233233 - uses : actions/checkout@v4
234234 with :
235235 fetch-depth : 0
236+
237+ - name : Download binary and libs
238+ uses : actions/download-artifact@v4
239+ with :
240+ name : mnist-RELEASE
241+ path : build/
242+
243+ - name : Verify downloaded artifacts
244+ run : |
245+ echo "### Verifying downloaded artifacts ###"
246+ echo "Current directory: $(pwd)"
247+ echo "Build directory contents:"
248+ ls -la build/ || echo "No build directory"
249+ echo "Looking for ACC binary:"
250+ find build/ -name "ACC" -type f 2>/dev/null || echo "ACC not found"
251+ echo "Checking bin directory:"
252+ ls -la build/bin/ 2>/dev/null || echo "No bin directory"
253+
236254 - name : Set binary path
237255 id : set_eval_binary
238256 run : |
239- echo "EVAL_BINARY=build/bin/ACC" >> $GITHUB_OUTPUT
257+ # Проверяем существует ли бинарник
258+ if [ -f "build/bin/ACC" ]; then
259+ echo "ACC binary found at build/bin/ACC"
260+ echo "EVAL_BINARY=build/bin/ACC" >> $GITHUB_OUTPUT
261+ else
262+ echo "ERROR: ACC binary not found at build/bin/ACC"
263+ echo "Available files:"
264+ find build/ -type f -name "*" 2>/dev/null | head -20
265+ exit 1
266+ fi
267+
240268 - name : Install system dependencies
241269 run : |
242270 sudo apt-get update
@@ -246,11 +274,13 @@ jobs:
246274 libjpeg-dev \
247275 libpng-dev \
248276 libtiff-dev \
249- libopenjp2-7
277+ libopenjp2-7 \
278+ libdnnl3
250279 sudo ldconfig
280+
251281 - name : Generate model JSON
252282 run : |
253- cd docs && mkdir jsons
283+ cd docs && mkdir -p jsons
254284 cd ..
255285 cd app/Converters
256286 pip install -r requirements.txt
@@ -276,50 +306,64 @@ jobs:
276306 rm -rf main.zip MNIST_dataset-main
277307 echo "Downloaded $(ls docs/mnist/mnist/test | wc -l) images"
278308
279- - name : Download binary and libs
280- uses : actions/download-artifact@v4
281- with :
282- name : mnist-RELEASE
283- path : build/
284-
285309 - name : Prepare environment
286310 run : |
311+ echo "### Preparing environment ###"
312+ echo "Binary path: ${{ steps.set_eval_binary.outputs.EVAL_BINARY }}"
313+
314+ ls -la "${{ steps.set_eval_binary.outputs.EVAL_BINARY }}"
287315 chmod +x "${{ steps.set_eval_binary.outputs.EVAL_BINARY }}"
288316
289317 export LD_LIBRARY_PATH=$PWD/build/bin/opencv_libs:/usr/lib/x86_64-linux-gnu
290318 echo "Final LD_LIBRARY_PATH: $LD_LIBRARY_PATH"
291319
292320 - name : Verify library integrity
293321 run : |
294- echo "### Library verification ###"
295- file build/bin/opencv_libs/libopencv_imgcodecs.so.4.12.0 | grep "shared object"
322+ echo "### Library verification ###"
323+ ls -la build/bin/opencv_libs/ || echo "No opencv_libs directory"
324+ file build/bin/opencv_libs/libopencv_imgcodecs.so* 2>/dev/null | head -1 || echo "No opencv_imgcodecs library found"
296325
297- - name : Run evaluation
326+ - name : Test binary execution
298327 run : |
299- echo "### Pre-run checks ###"
300- export LD_LIBRARY_PATH=$PWD/build/bin/opencv_libs:/usr/lib/x86_64-linux-gnu
301- echo "LD_LIBRARY_PATH: $LD_LIBRARY_PATH"
302-
303- LD_DEBUG=files "${{ steps.set_eval_binary.outputs.EVAL_BINARY }}" --model alexnet_mnist 2> ld_debug.log
304- echo "### Library loading debug # ##"
305- grep -i "opencv_imgcodecs" ld_debug.log
328+ echo "### Testing binary execution ###"
329+ export LD_LIBRARY_PATH=$PWD/build/bin/opencv_libs:/usr/lib/x86_64-linux-gnu
330+
331+ echo "Binary dependencies:"
332+ ldd "${{ steps.set_eval_binary.outputs.EVAL_BINARY }}" 2>/dev/null || echo "ldd failed"
333+
334+ echo "Testing help command:"
335+ timeout 10s "${{ steps.set_eval_binary.outputs.EVAL_BINARY }}" --help > /dev/null 2>&1 || echo "Help test completed"
306336
307- " ${{ steps.set_eval_binary.outputs.EVAL_BINARY }}" > accuracy.txt
308- echo "Accuracy : $(cat accuracy.txt)"
337+ - name : Run evaluation
338+ run : |
339+ echo "### Running evaluation ###"
340+ export LD_LIBRARY_PATH=$PWD/build/bin/opencv_libs:/usr/lib/x86_64-linux-gnu
341+ echo "LD_LIBRARY_PATH: $LD_LIBRARY_PATH"
342+
343+ echo "Running ACC evaluation..."
344+ "${{ steps.set_eval_binary.outputs.EVAL_BINARY }}" --model alexnet_mnist > accuracy.txt 2>&1 || \
345+ "${{ steps.set_eval_binary.outputs.EVAL_BINARY }}" > accuracy.txt 2>&1
346+
347+ echo "Evaluation output:"
348+ cat accuracy.txt
309349
350+ - name : Extract accuracy value
351+ run : |
352+ echo "### Extracting accuracy ###"
353+ ACCURACY=$(grep -oE '[0-9]+\.?[0-9]*%' accuracy.txt | head -1 || echo "0%")
354+ echo "Accuracy: $ACCURACY"
355+ echo "$ACCURACY" > accuracy_value.txt
356+
310357 - name : Update README (master only)
311358 if : github.ref == 'refs/heads/master'
312359 run : |
313- ACCURACY=$(cat accuracy .txt | sed 's/%//g')
360+ ACCURACY=$(cat accuracy_value .txt | sed 's/%//g')
314361 DATE=$(date '+%Y-%m-%d')
315362
316363 echo "Updating README with:"
317- echo "Accuracy : $ACCURACY"
364+ echo "Accuracy : $ACCURACY% "
318365 echo "Date : $DATE"
319366
320- echo "Current README content:"
321- grep -A 2 -B 2 "ACCURACY_PLACEHOLDER" README.md || echo "Placeholder not found"
322-
323367 sed -i "s/<!--ACCURACY_PLACEHOLDER-->.*<!--END_ACCURACY-->/<!--ACCURACY_PLACEHOLDER-->Accuracy : ${ACCURACY}% (updated: ${DATE})<!--END_ACCURACY-->/" README.md
324368
325369 echo "Updated README content:"
@@ -336,7 +380,7 @@ jobs:
336380 if git diff-index --quiet HEAD --; then
337381 echo "No changes to commit"
338382 else
339- git commit -m "[CI] Update accuracy : $(cat accuracy .txt)% "
383+ git commit -m "[CI] Update accuracy : $(cat accuracy_value .txt)"
340384 git push origin master
341385 echo "Changes pushed to master branch"
342386 fi
0 commit comments