ci: log per-job ccache stats

This commit is contained in:
Fu Hanxi
2026-04-15 13:25:02 +02:00
parent 6b5091acb8
commit f15406fe33
2 changed files with 22 additions and 2 deletions
+17 -1
View File
@@ -119,6 +119,11 @@ variables:
# configure cmake related flags
source tools/ci/configure_ci_environment.sh
if [[ "$CI_CCACHE_STATS" == 1 ]] && command -v ccache >/dev/null 2>&1 && [[ -n "$CCACHE_STATSLOG" ]]; then
mkdir -p "$(dirname "$CCACHE_STATSLOG")"
rm -f "$CCACHE_STATSLOG"
fi
# add extra python packages
export PYTHONPATH="$IDF_PATH/tools:$IDF_PATH/tools/ci:$IDF_PATH/tools/esp_app_trace:$IDF_PATH/components/partition_table:$IDF_PATH/tools/ci/python_packages:$PYTHONPATH"
@@ -231,7 +236,17 @@ variables:
.show_ccache_statistics: &show_ccache_statistics |
# Show ccache statistics if enabled globally
section_start "ccache_show_stats" "Show ccache statistics"
test "$CI_CCACHE_STATS" == 1 && test -n "$(which ccache)" && ccache --show-stats -vv || true
if [[ "$CI_CCACHE_STATS" == 1 ]] && command -v ccache >/dev/null 2>&1; then
if ccache --help 2>/dev/null | grep -q -- '--show-log-stats'; then
if [[ -n "$CCACHE_STATSLOG" && -f "$CCACHE_STATSLOG" ]]; then
ccache --show-log-stats -vv
else
echo "INFO: No per-job ccache statistics were recorded"
fi
else
ccache --show-stats -vv
fi
fi || true
section_end "ccache_show_stats"
.upload_failed_job_log_artifacts: &upload_failed_job_log_artifacts |
@@ -246,6 +261,7 @@ variables:
.after_script:build:
after_script:
- source tools/ci/utils.sh
- source tools/ci/configure_ci_environment.sh
- *show_ccache_statistics
- *upload_failed_job_log_artifacts
+5 -1
View File
@@ -36,9 +36,13 @@ fi
# https://ccache.dev/manual/latest.html#_configuring_ccache
# Set ccache base directory to the project checkout path, to cancel out differences between runners
export CCACHE_BASEDIR="${IDF_PATH}"
export CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK:-content}"
# host mapping volume to share ccache fbetween runner concurrent jobs
export CCACHE_SLOPPINESS="time_macros"
export CCACHE_SLOPPINESS="time_macros,file_macro,include_file_mtime,include_file_ctime"
# Keep per-job statistics in the checkout directory while sharing the cache itself.
export CCACHE_STATSLOG="${CCACHE_STATSLOG:-${IDF_PATH}/.ccache-stats.log}"
# CCACHE_RECACHE Used when invalidating the current cache.
# could be enabled by MR label "ccache:recache"