diff --git a/.github/workflows/README.md b/.github/workflows/README.md index d14817f00..e7bad8267 100644 --- a/.github/workflows/README.md +++ b/.github/workflows/README.md @@ -5,15 +5,15 @@ The workflows in this directory are split so that pull requests get fast, review ## Pull Requests - `bazel.yml` is the main pre-merge verification path for Rust code. - It runs Bazel `test` and Bazel `clippy` on the supported Bazel targets, - including the generated Rust test binaries needed to lint inline `#[cfg(test)]` - code. + It runs Bazel `test` and Bazel `clippy` on the supported Bazel targets. - `rust-ci.yml` keeps the Cargo-native PR checks intentionally small: - `cargo fmt --check` - `cargo shear` - `argument-comment-lint` on Linux, macOS, and Windows - `tools/argument-comment-lint` package tests when the lint or its workflow wiring changes +The PR workflow still keeps the Linux lint lane on the default-targets-only invocation for now, but the released linter runs on Linux, macOS, and Windows before merge. + ## Post-Merge On `main` - `bazel.yml` also runs on pushes to `main`. diff --git a/.github/workflows/bazel.yml b/.github/workflows/bazel.yml index 30f066163..f7f16dd99 100644 --- a/.github/workflows/bazel.yml +++ b/.github/workflows/bazel.yml @@ -154,17 +154,13 @@ jobs: mkdir -p "${RUNNER_TEMP}/bazel-execution-logs" echo "CODEX_BAZEL_EXECUTION_LOG_COMPACT_DIR=${RUNNER_TEMP}/bazel-execution-logs" >> "${GITHUB_ENV}" - - name: bazel build --config=clippy lint targets + - name: bazel build --config=clippy //codex-rs/... env: BUILDBUDDY_API_KEY: ${{ secrets.BUILDBUDDY_API_KEY }} shell: bash run: | - bazel_target_lines="$(./scripts/list-bazel-clippy-targets.sh)" - bazel_targets=() - while IFS= read -r target; do - bazel_targets+=("${target}") - done <<< "${bazel_target_lines}" - + # Keep the initial Bazel clippy scope on codex-rs and out of the + # V8 proof-of-concept target for now. ./.github/scripts/run-bazel-ci.sh \ -- \ build \ @@ -172,7 +168,8 @@ jobs: --build_metadata=COMMIT_SHA=${GITHUB_SHA} \ --build_metadata=TAG_job=clippy \ -- \ - "${bazel_targets[@]}" + //codex-rs/... \ + -//codex-rs/v8-poc:all - name: Upload Bazel execution logs if: always() && !cancelled() diff --git a/justfile b/justfile index 43afbf93d..7dc6ae100 100644 --- a/justfile +++ b/justfile @@ -69,9 +69,8 @@ bazel-lock-check: bazel-test: bazel test --test_tag_filters=-argument-comment-lint //... --keep_going -[no-cd] bazel-clippy: - bazel_targets="$(./scripts/list-bazel-clippy-targets.sh)" && bazel build --config=clippy -- ${bazel_targets} + bazel build --config=clippy -- //codex-rs/... -//codex-rs/v8-poc:all [no-cd] bazel-argument-comment-lint: diff --git a/scripts/list-bazel-clippy-targets.sh b/scripts/list-bazel-clippy-targets.sh deleted file mode 100755 index d6351d1f8..000000000 --- a/scripts/list-bazel-clippy-targets.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" -cd "${repo_root}" - -# Resolve the dynamic targets before printing anything so callers do not -# continue with a partial list if `bazel query` fails. -manual_rust_test_targets="$(bazel query 'kind("rust_test rule", attr(tags, "manual", //codex-rs/... except //codex-rs/v8-poc/...))')" - -printf '%s\n' \ - "//codex-rs/..." \ - "-//codex-rs/v8-poc:all" - -# `--config=clippy` on the `workspace_root_test` wrappers does not lint the -# underlying `rust_test` binaries. Add the internal manual `*-unit-tests-bin` -# targets explicitly so inline `#[cfg(test)]` code is linted like -# `cargo clippy --tests`. -printf '%s\n' "${manual_rust_test_targets}"