diff --git a/.github/scripts/run-bazel-ci.sh b/.github/scripts/run-bazel-ci.sh index d08b32e3d4..e4dbe79d7d 100755 --- a/.github/scripts/run-bazel-ci.sh +++ b/.github/scripts/run-bazel-ci.sh @@ -146,6 +146,19 @@ if [[ -n "${BAZEL_REPOSITORY_CACHE:-}" ]]; then post_config_bazel_args+=("--repository_cache=${BAZEL_REPOSITORY_CACHE}") fi +if [[ -n "${CODEX_BAZEL_EXECUTION_LOG_COMPACT_DIR:-}" ]]; then + execution_log_compact_dir="${CODEX_BAZEL_EXECUTION_LOG_COMPACT_DIR}" + execution_log_compact_dir_for_mkdir="${execution_log_compact_dir}" + if [[ "${RUNNER_OS:-}" == "Windows" ]]; then + execution_log_compact_dir_for_mkdir="$(cygpath -u "${execution_log_compact_dir}")" + fi + + mkdir -p "${execution_log_compact_dir_for_mkdir}" + post_config_bazel_args+=( + "--execution_log_compact_file=${execution_log_compact_dir}/execution-log-${bazel_args[0]}-${GITHUB_JOB:-local}-$$.zst" + ) +fi + if [[ "${RUNNER_OS:-}" == "Windows" ]]; then windows_action_env_vars=( INCLUDE diff --git a/.github/workflows/bazel.yml b/.github/workflows/bazel.yml index a6c9277b61..9b996dc6dd 100644 --- a/.github/workflows/bazel.yml +++ b/.github/workflows/bazel.yml @@ -66,6 +66,7 @@ jobs: - name: bazel test //... env: BUILDBUDDY_API_KEY: ${{ secrets.BUILDBUDDY_API_KEY }} + CODEX_BAZEL_EXECUTION_LOG_COMPACT_DIR: ${{ runner.temp }}/bazel-execution-logs shell: bash run: | bazel_targets=( @@ -87,6 +88,15 @@ jobs: -- \ "${bazel_targets[@]}" + - name: Upload Bazel execution logs + if: always() && !cancelled() + continue-on-error: true + uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7 + with: + name: bazel-execution-logs-test-${{ matrix.target }} + path: ${{ runner.temp }}/bazel-execution-logs + if-no-files-found: ignore + # Save bazel repository cache explicitly; make non-fatal so cache uploading # never fails the overall job. Only save when key wasn't hit. - name: Save bazel repository cache @@ -129,6 +139,7 @@ jobs: - name: bazel build --config=clippy //codex-rs/... env: BUILDBUDDY_API_KEY: ${{ secrets.BUILDBUDDY_API_KEY }} + CODEX_BAZEL_EXECUTION_LOG_COMPACT_DIR: ${{ runner.temp }}/bazel-execution-logs shell: bash run: | # Keep the initial Bazel clippy scope on codex-rs and out of the @@ -143,6 +154,15 @@ jobs: //codex-rs/... \ -//codex-rs/v8-poc:all + - name: Upload Bazel execution logs + if: always() && !cancelled() + continue-on-error: true + uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7 + with: + name: bazel-execution-logs-clippy-${{ matrix.target }} + path: ${{ runner.temp }}/bazel-execution-logs + if-no-files-found: ignore + # Save bazel repository cache explicitly; make non-fatal so cache uploading # never fails the overall job. Only save when key wasn't hit. - name: Save bazel repository cache