@@ -159,6 +159,11 @@ runs:
159159 echo -n "$GITHUB_TOKEN" > "$GITHUB_TOKEN_FILE"
160160 echo "GITHUB_TOKEN_FILE=$GITHUB_TOKEN_FILE" >> "$GITHUB_ENV"
161161 chmod 600 "$GITHUB_TOKEN_FILE"
162+ - name : Install trace dependencies
163+ continue-on-error : true
164+ shell : bash
165+ run : |
166+ pip install -r .github/scripts/requirements.txt
162167 - name : ya test
163168 id : check_test_results
164169 shell : bash --noprofile --norc -eo pipefail -x {0}
@@ -299,13 +304,14 @@ runs:
299304
300305 echo "RETRIES=${RETRIES}" | tee -a "$GITHUB_ENV"
301306 echo "report_generated=no" >> "$GITHUB_OUTPUT"
302- RETRY_FLAG=""
307+ retry_params=()
303308 i=0
304309 echo "LAST_STEP=0" | tee -a "$GITHUB_ENV"
305310 # setting variable in case that test will be interrupter by OOM killer that
306311 # will kill VM with runner
307312 echo "failed_tests=yes" >> $GITHUB_OUTPUT
308313 while [ "$RETRIES" -gt 0 ]; do
314+ TRACE_START_TIME_NS=$(date +%s%N)
309315 TEST_START_TIME=$(date +%s)
310316 echo TEST_START_TIME=$TEST_START_TIME | tee -a "$GITHUB_ENV"
311317 RETRIES=$((RETRIES - 1))
@@ -338,7 +344,7 @@ runs:
338344 --junit "${JUNIT_REPORT_XML}.${i}" \
339345 --log-file "$RETRY_LOG_DIR/ya_log.txt" \
340346 --evlog-file "$RETRY_LOG_DIR/ya_evlog.jsonl" \
341- "$RETRY_FLAG "
347+ "${retry_params[@]} "
342348 echo $? > "$EXIT_CODE_FILE"
343349 } |& tee "$RETRY_LOG_DIR/ya_make_output.txt"
344350 set -e
@@ -376,7 +382,7 @@ runs:
376382 echo "ya test returned $RC after timeout killed it with SIGKILL"
377383 ATTEMPT_TIMED_OUT=1
378384 DO_RETRY=1
379- RETRY_FLAG="-X"
385+ retry_params=(-X)
380386 else
381387 echo "ya test returned $RC it was killed by OOM killer"
382388 if [ $OOM_CAN_BE_RETRIED -eq 0 ]; then
@@ -402,11 +408,12 @@ runs:
402408 # disabling retries here for now until we will be able to
403409 # process junit with retried runs
404410 DO_RETRY=1
405- RETRY_FLAG="-X"
411+ retry_params=(-X)
406412 ;;
407413 esac
408414
409415 touch "$LOG_DIR/${i}_build_finished"
416+ TRACE_END_TIME_NS=$(date +%s%N)
410417 TEST_END_TIME=$(date +%s)
411418 echo TEST_END_TIME=$TEST_END_TIME | tee -a "$GITHUB_ENV"
412419
@@ -573,6 +580,15 @@ runs:
573580 fi
574581 fi
575582
583+ REPORT_DIR="$ARTIFACTS_DIR/summary/${COMPONENT_DIR}${i}"
584+ TRACE_REPORT_URL="$S3_WEBSITE_PREFIX/summary/${COMPONENT_DIR}${i}/trace.html"
585+ TRACE_OTLP_URL="$S3_WEBSITE_PREFIX/summary/${COMPONENT_DIR}${i}/trace.otlp.jsonl.gz"
586+ TRACE_INPUTS_URL="$S3_WEBSITE_PREFIX/summary/${COMPONENT_DIR}${i}/trace-inputs.tar.gz"
587+ if [ -n "${S3_REPORTS_WEBSITE_PREFIX:-}" ]; then
588+ TRACE_REPORT_URL="$S3_REPORTS_WEBSITE_PREFIX/${COMPONENT_DIR}${i}/trace.html"
589+ TRACE_OTLP_URL="$S3_REPORTS_WEBSITE_PREFIX/${COMPONENT_DIR}${i}/trace.otlp.jsonl.gz"
590+ TRACE_INPUTS_URL="$S3_REPORTS_WEBSITE_PREFIX/${COMPONENT_DIR}${i}/trace-inputs.tar.gz"
591+ fi
576592 export SUMMARY_OUT_ENV_PATH=$(mktemp -p /home/github)
577593 set +x
578594 GITHUB_TOKEN="$(cat "$GITHUB_TOKEN_FILE")"
@@ -588,6 +604,7 @@ runs:
588604 --test-target "${TEST_TARGET//\"/}" \
589605 --test-time $((TEST_END_TIME - TEST_START_TIME)) \
590606 --build-error-log-url "$BUILD_ERROR_LOG_URL_FOR_ITERATION" \
607+ --trace-report-url "$TRACE_REPORT_URL" \
591608 "Tests" ya-test.html "${JUNIT_REPORT_XML}.${i}"
592609 unset GITHUB_TOKEN
593610 echo "report_generated=yes" >> "$GITHUB_OUTPUT"
@@ -598,6 +615,29 @@ runs:
598615 echo "[Extracted build errors]($BUILD_ERROR_LOG_URL_FOR_ITERATION)"
599616 } >> "$SUMMARY_OUT_ENV_PATH"
600617 fi
618+ PYTHONPATH="$PYTHONPATH:$GITHUB_WORKSPACE/.github" \
619+ bash "$GITHUB_WORKSPACE/.github/scripts/tracing/render_ya_trace_bundle.sh" \
620+ --warning-title "Trace report" \
621+ --report-dir "$REPORT_DIR" \
622+ --ya-out "$OUT_DIR" \
623+ --evlog "$LOG_DIR/${i}/ya_evlog.jsonl" \
624+ --html-url "$TRACE_REPORT_URL" \
625+ --otlp-url "$TRACE_OTLP_URL" \
626+ --inputs-url "$TRACE_INPUTS_URL" \
627+ --summary "$SUMMARY_OUT_ENV_PATH" \
628+ -- \
629+ --attempt-start-ns "$TRACE_START_TIME_NS" \
630+ --attempt-end-ns "$TRACE_END_TIME_NS" \
631+ --exit-code "$RC" \
632+ --result-code "$FAIL_CHECKER_RC" \
633+ --component "${COMPONENT_DIR%/}" \
634+ --build-preset "$BUILD_PRESET" \
635+ --test-target "$TEST_TARGET" \
636+ --test-type "$TEST_TYPE" \
637+ --test-size "$TEST_SIZE" \
638+ --retry "$i" \
639+ --test-log-url-prefix "$S3_WEBSITE_PREFIX/logs/${COMPONENT_DIR}${i}/" \
640+ --test-data-url-prefix "$S3_WEBSITE_PREFIX/test_data/${COMPONENT_DIR}${i}$GITHUB_WORKSPACE/"
601641 cat $SUMMARY_OUT_ENV_PATH | tee -a $GITHUB_STEP_SUMMARY
602642 echo "::endgroup::"
603643
@@ -613,11 +653,21 @@ runs:
613653 fi
614654
615655 echo "::group::s3-sync"
616- aws s3 sync --acl public-read --follow-symlinks --no-progress "$ARTIFACTS_DIR/" "$S3_BUCKET_PATH/"
617- if [ -n "${S3_REPORTS_BUCKET_PATH:-}" ] && [ -f "$ARTIFACTS_DIR/summary/${COMPONENT_DIR}${i}/summary.json" ]; then
618- aws s3 cp --acl public-read --follow-symlinks --no-progress \
619- "$ARTIFACTS_DIR/summary/${COMPONENT_DIR}${i}/summary.json" \
620- "$S3_REPORTS_BUCKET_PATH/${COMPONENT_DIR}${i}/summary.json"
656+ aws s3 sync --acl public-read --follow-symlinks --no-progress \
657+ --exclude "*.trace-inputs.*.tar.gz.tmp" \
658+ --exclude "*trace-inputs.files" \
659+ "$ARTIFACTS_DIR/" \
660+ "$S3_BUCKET_PATH/"
661+ if [ -n "${S3_REPORTS_BUCKET_PATH:-}" ]; then
662+ aws s3 sync --acl public-read --follow-symlinks --no-progress \
663+ --exclude "*" \
664+ --include "summary.json" \
665+ --include "trace.html" \
666+ --include "trace.manifest.json" \
667+ --include "trace.otlp.jsonl.gz" \
668+ --include "trace-inputs.tar.gz" \
669+ "$REPORT_DIR/" \
670+ "$S3_REPORTS_BUCKET_PATH/${COMPONENT_DIR}${i}/"
621671 fi
622672 touch "$LOG_DIR/${i}_artifacts_synced"
623673 echo "::endgroup::"
0 commit comments