@@ -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
@@ -248,9 +276,10 @@ jobs:
248276 libtiff-dev \
249277 libopenjp2-7
250278 sudo ldconfig
279+
251280 - name : Generate model JSON
252281 run : |
253- cd docs && mkdir jsons
282+ cd docs && mkdir -p jsons
254283 cd ..
255284 cd app/Converters
256285 pip install -r requirements.txt
@@ -276,27 +305,37 @@ jobs:
276305 rm -rf main.zip MNIST_dataset-main
277306 echo "Downloaded $(ls docs/mnist/mnist/test | wc -l) images"
278307
279- - name : Download binary and libs
280- uses : actions/download-artifact@v4
281- with :
282- name : mnist-RELEASE
283- path : build/
284-
285308 - name : Prepare environment
286309 run : |
310+ echo "### Preparing environment ###"
311+ echo "Binary path: ${{ steps.set_eval_binary.outputs.EVAL_BINARY }}"
312+
313+ ls -la "${{ steps.set_eval_binary.outputs.EVAL_BINARY }}"
287314 chmod +x "${{ steps.set_eval_binary.outputs.EVAL_BINARY }}"
288315
289316 export LD_LIBRARY_PATH=$PWD/build/bin/opencv_libs:/usr/lib/x86_64-linux-gnu
290317 echo "Final LD_LIBRARY_PATH: $LD_LIBRARY_PATH"
291318
292319 - name : Verify library integrity
293320 run : |
294- echo "### Library verification ###"
295- file build/bin/opencv_libs/libopencv_imgcodecs.so.4.12.0 | grep "shared object"
321+ echo "### Library verification ###"
322+ ls -la build/bin/opencv_libs/ || echo "No opencv_libs directory"
323+ file build/bin/opencv_libs/libopencv_imgcodecs.so* 2>/dev/null | head -1 || echo "No opencv_imgcodecs library found"
324+
325+ - name : Test binary execution
326+ run : |
327+ echo "### Testing binary execution ###"
328+ export LD_LIBRARY_PATH=$PWD/build/bin/opencv_libs:/usr/lib/x86_64-linux-gnu
329+
330+ echo "Binary dependencies:"
331+ ldd "${{ steps.set_eval_binary.outputs.EVAL_BINARY }}" 2>/dev/null || echo "ldd failed"
332+
333+ echo "Testing help command:"
334+ timeout 10s "${{ steps.set_eval_binary.outputs.EVAL_BINARY }}" --help > /dev/null 2>&1 || echo "Help test completed"
296335
297336 - name : Run evaluation
298337 run : |
299- echo "### Running evaluation ###"
338+ echo "### Running evaluation ###"
300339 export LD_LIBRARY_PATH=$PWD/build/bin/opencv_libs:/usr/lib/x86_64-linux-gnu
301340 echo "LD_LIBRARY_PATH: $LD_LIBRARY_PATH"
302341
@@ -307,19 +346,23 @@ jobs:
307346 echo "Evaluation output:"
308347 cat accuracy.txt
309348
349+ - name : Extract accuracy value
350+ run : |
351+ echo "### Extracting accuracy ###"
352+ ACCURACY=$(grep -oE '[0-9]+\.?[0-9]*%' accuracy.txt | head -1 || echo "0%")
353+ echo "Accuracy: $ACCURACY"
354+ echo "$ACCURACY" > accuracy_value.txt
355+
310356 - name : Update README (master only)
311357 if : github.ref == 'refs/heads/master'
312358 run : |
313- ACCURACY=$(cat accuracy .txt | sed 's/%//g')
359+ ACCURACY=$(cat accuracy_value .txt | sed 's/%//g')
314360 DATE=$(date '+%Y-%m-%d')
315361
316362 echo "Updating README with:"
317- echo "Accuracy : $ACCURACY"
363+ echo "Accuracy : $ACCURACY% "
318364 echo "Date : $DATE"
319365
320- echo "Current README content:"
321- grep -A 2 -B 2 "ACCURACY_PLACEHOLDER" README.md || echo "Placeholder not found"
322-
323366 sed -i "s/<!--ACCURACY_PLACEHOLDER-->.*<!--END_ACCURACY-->/<!--ACCURACY_PLACEHOLDER-->Accuracy : ${ACCURACY}% (updated: ${DATE})<!--END_ACCURACY-->/" README.md
324367
325368 echo "Updated README content:"
@@ -336,7 +379,7 @@ jobs:
336379 if git diff-index --quiet HEAD --; then
337380 echo "No changes to commit"
338381 else
339- git commit -m "[CI] Update accuracy : $(cat accuracy .txt)% "
382+ git commit -m "[CI] Update accuracy : $(cat accuracy_value .txt)"
340383 git push origin master
341384 echo "Changes pushed to master branch"
342385 fi
0 commit comments