| #!/usr/bin/env bash |
| # Print commands |
| # set -x |
| # Extracted from https://github.com/bazelbuild/bazel/blob/master/scripts/ci/ci.sh |
| |
| COMMIT_RANGE=${COMMIT_RANGE:-"HEAD^..HEAD"} |
| |
| echo "${COMMIT_RANGE}" |
| |
| # Go to the root of the repo |
| cd "$(git rev-parse --show-toplevel)" || true |
| |
| # Get list of affected files by the diff |
| affected_files=$(git diff --name-only "${COMMIT_RANGE}") |
| |
| # Get a list of the current targets in package form by querying Bazel. |
| bazel_targets=() |
| for bazel_target in $affected_files ; do |
| bazel_targets+=($(bazel query "$bazel_target")) |
| done |
| |
| if (( ${#bazel_targets[@]} == 0 )); then |
| echo "No bazel targets found after checking the diff." |
| exit 0 |
| fi |
| |
| # Now check if we need to run some tests based on this change |
| # E.g. A change in Grid needs to trigger remote tests in other bindings |
| echo "Checking test targets..." |
| bazel_targets+=($(bazel query \ |
| --keep_going \ |
| --noshow_progress \ |
| "kind(test, rdeps(//..., set(${bazel_targets[*]})))")) |
| |
| echo "bazel-targets='${bazel_targets[*]}'" | tee -a "$GITHUB_OUTPUT" |