diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e47e212f..7655a1e6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -303,6 +303,13 @@ jobs: - name: Update README (main only) run: | ACCURACY=$(sed 's/%//g' accuracy_value.txt) + CURRENT_ACCURACY=$(sed -nE 's/.*Accuracy: ([0-9]+(\.[0-9]+)?)% \(updated: [0-9-]+\).*/\1/p' README.md | head -n1) + + if [ -n "$CURRENT_ACCURACY" ] && [ "$CURRENT_ACCURACY" = "$ACCURACY" ]; then + echo "Accuracy unchanged; keeping existing README update date" + exit 0 + fi + DATE=$(date '+%Y-%m-%d') UPDATE_TEXT="Accuracy: ${ACCURACY}% (updated: ${DATE})" ESCAPED_UPDATE_TEXT=$(printf '%s\n' "$UPDATE_TEXT" | sed 's/[&|\\]/\\&/g') @@ -507,7 +514,6 @@ jobs: run: | TOP1_ACC=$(sed -nE 's/^Top-1 Accuracy: ([0-9]+(\.[0-9]+)?)%$/\1/p' accuracy_${{ matrix.model }}.txt | head -n1) TOP5_ACC=$(sed -nE 's/^Top-5 Accuracy: ([0-9]+(\.[0-9]+)?)%$/\1/p' accuracy_${{ matrix.model }}.txt | head -n1) - DATE=$(date '+%Y-%m-%d') if [ -z "$TOP1_ACC" ] || [ -z "$TOP5_ACC" ]; then echo "Ошибка: Не удалось извлечь точность из файла accuracy_${{ matrix.model }}.txt" @@ -515,6 +521,17 @@ jobs: exit 1 fi + CURRENT_TOP1=$(sed -nE "s/.*Accuracy: Top-1: ([0-9]+(\\.[0-9]+)?)% \\| Top-5: ([0-9]+(\\.[0-9]+)?)% \\(updated: [0-9-]+\\).*/\\1/p" README.md | head -n1) + CURRENT_TOP5=$(sed -nE "s/.*Accuracy: Top-1: ([0-9]+(\\.[0-9]+)?)% \\| Top-5: ([0-9]+(\\.[0-9]+)?)% \\(updated: [0-9-]+\\).*/\\3/p" README.md | head -n1) + + if [ -n "$CURRENT_TOP1" ] && [ -n "$CURRENT_TOP5" ] && \ + [ "$CURRENT_TOP1" = "$TOP1_ACC" ] && [ "$CURRENT_TOP5" = "$TOP5_ACC" ]; then + echo "Accuracy for ${{ matrix.model }} unchanged; keeping existing README update date" + exit 0 + fi + + DATE=$(date '+%Y-%m-%d') + UPDATE_TEXT="Accuracy: Top-1: ${TOP1_ACC}% | Top-5: ${TOP5_ACC}% (updated: ${DATE})" ESCAPED_UPDATE_TEXT=$(printf '%s\n' "$UPDATE_TEXT" | sed 's/[&|\\]/\\&/g')