From 1254494dd8dd4d520c386a1a1f9e0978736d1dea Mon Sep 17 00:00:00 2001 From: Peter Macko Date: Tue, 10 Sep 2024 23:28:45 +0200 Subject: [PATCH] fix(macos): ccache: re-enable, show stats, set CCACHE_DIR, limit CCACHE_MAXSIZE --- .gitlab/ci/build.yml | 11 ++++++----- .gitlab/ci/common.yml | 7 ++++--- .../ci/dynamic_pipelines/templates/.dynamic_jobs.yml | 6 +++--- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/.gitlab/ci/build.yml b/.gitlab/ci/build.yml index 6147e13503..376946d0bd 100644 --- a/.gitlab/ci/build.yml +++ b/.gitlab/ci/build.yml @@ -1,7 +1,7 @@ .build_template: stage: build extends: - - .after_script:build:ccache:upload-when-fail + - .after_script:build:ccache-show-stats:upload-failed-job-logs image: $ESP_ENV_IMAGE tags: - build @@ -16,7 +16,7 @@ extends: - .build_template - .before_script:build - - .after_script:build:ccache + - .after_script:build:ccache-show-stats dependencies: # set dependencies to null to avoid missing artifacts issue needs: - job: fast_template_app @@ -246,15 +246,16 @@ pytest_build_system_macos: extends: - .test_build_system_template - .before_script:build:macos - - .after_script:build:macos:upload-when-fail + - .after_script:build:macos:upload-failed-job-logs:ccache-show-stats - .rules:build:macos tags: - macos_shell parallel: 3 variables: PYENV_VERSION: "3.8" - CI_CCACHE_DISABLE: "1" # ccache: error: Read-only file system - + # CCACHE_DIR: "/cache/idf_ccache". On macOS, you cannot write to this folder due to insufficient permissions. + CCACHE_DIR: "" # ccache will use "$HOME/Library/Caches/ccache". + CCACHE_MAXSIZE: "5G" # To preserve the limited Macbook storage. CCACHE automatically prunes old caches to fit the set limit. build_docker: extends: - .before_script:minimal diff --git a/.gitlab/ci/common.yml b/.gitlab/ci/common.yml index 1813baefd8..1779f2361d 100644 --- a/.gitlab/ci/common.yml +++ b/.gitlab/ci/common.yml @@ -227,13 +227,14 @@ variables: - *setup_tools_and_idf_python_venv - fetch_submodules -.after_script:build:macos:upload-when-fail: +.after_script:build:macos:upload-failed-job-logs:ccache-show-stats: after_script: # macos is running shell executor, which means it would use # the system installed /usr/local/bin/python3 by default. # Ensure pyenv and PYENV_VERSION installed - eval "$(pyenv init -)" - *upload_failed_job_log_artifacts + - *show_ccache_statistics .before_script:build: before_script: @@ -244,11 +245,11 @@ variables: - export EXTRA_CFLAGS=${PEDANTIC_CFLAGS} - export EXTRA_CXXFLAGS=${PEDANTIC_CXXFLAGS} -.after_script:build:ccache: +.after_script:build:ccache-show-stats: after_script: - *show_ccache_statistics -.after_script:build:ccache:upload-when-fail: +.after_script:build:ccache-show-stats:upload-failed-job-logs: after_script: - *show_ccache_statistics - *upload_failed_job_log_artifacts diff --git a/tools/ci/dynamic_pipelines/templates/.dynamic_jobs.yml b/tools/ci/dynamic_pipelines/templates/.dynamic_jobs.yml index 3eff163539..bf5fb01c57 100644 --- a/tools/ci/dynamic_pipelines/templates/.dynamic_jobs.yml +++ b/tools/ci/dynamic_pipelines/templates/.dynamic_jobs.yml @@ -7,7 +7,7 @@ .dynamic_build_template: extends: - .before_script:build - - .after_script:build:ccache:upload-when-fail + - .after_script:build:ccache-show-stats:upload-failed-job-logs image: $ESP_ENV_IMAGE stage: build variables: @@ -64,8 +64,8 @@ - pytest-embedded/ # Child pipeline reports won't be collected in the main one # https://gitlab.com/groups/gitlab-org/-/epics/8205 -# reports: -# junit: XUNIT_RESULT.xml +# reports: +# junit: XUNIT_RESULT.xml when: always expire_in: 1 week script: