diff --git a/.github/actions/test/action.yml b/.github/actions/test/action.yml index 895231b43..71f663a98 100644 --- a/.github/actions/test/action.yml +++ b/.github/actions/test/action.yml @@ -122,19 +122,16 @@ runs: # Count total tests by unique test names (not file extensions) # Get base test names by removing extensions and extracting just the test name - test_names=$(find "$wpath/results/last-run" -type f -name "*" | \ + total_tests=$(find "$wpath/results/last-run" -type f -name "*" | \ grep -E '/[^/]*$' | \ sed 's|.*/||' | \ sed 's/\.\(full\|out\|runtime\|dmesg\)$//' | \ - sort -u) - total_tests=$(echo "$test_names" | grep -v '^$' | wc -l) + sort -u | \ + grep -v '^$' | \ + wc -l) - bad_files=$(find "$wpath/results/last-run" -name "*.out.bad" -type f) - if [[ -n "$bad_files" ]]; then - failed_tests=$(echo "$bad_files" | wc -l) - else - failed_tests=0 - fi + # Count failed tests directly from find output + failed_tests=$(find "$wpath/results/last-run" -name "*.out.bad" -type f | wc -l) passed_tests=$((total_tests - failed_tests)) @@ -149,8 +146,8 @@ runs: # Show sample test status files for passed tests if [ $passed_tests -gt 0 ]; then echo -e "\nSample passed test:" >> ci.commit_extra - sample_files=$(find "$wpath/results/last-run" -type f -name "*" ! -name "*.out.bad" ! -name "*.dmesg") - sample_file=$(echo "$sample_files" | head -1) + # Get first sample file directly without echo pipe to avoid SIGPIPE with set -o pipefail + sample_file=$(find "$wpath/results/last-run" -type f -name "*" ! -name "*.out.bad" ! -name "*.dmesg" | head -1) if [ -n "$sample_file" ] && [ -f "$sample_file" ]; then cat "$sample_file" >> ci.commit_extra || echo "Failed to read sample file" >> ci.commit_extra else diff --git a/.github/workflows/kdevops.yml b/.github/workflows/kdevops.yml index 78a3fe228..6fc583c6a 100644 --- a/.github/workflows/kdevops.yml +++ b/.github/workflows/kdevops.yml @@ -74,6 +74,7 @@ on: - linux - linux-next - linux-stable + - kdevops-linus kernel_ref: description: "Linux tree git reference (branch/tag/commit-id)" required: true @@ -271,7 +272,14 @@ jobs: || 'kdevops-ci' }} tests: ${{ github.event.inputs.tests || '' }} - timeout-minutes: 120 + # Timeout: linux-ci runs full test suite (24 hours), + # kdevops-ci runs single test (2 hours) + timeout-minutes: >- + ${{ + (github.event_name == 'schedule' && 1440) + || (github.event.inputs.test_mode == 'linux-ci' && 1440) + || 120 + }} - name: Archive results uses: ./.github/actions/archive