# Copyright 2024 The OpenXLA Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ============================================================================
name: Bazel Query
permissions:
  contents: read
on:
  pull_request:
  push:
    branches:
      - main

jobs:
  bazel-query:
    runs-on: "linux-x86-n2-16"
    container:
      image: "us-docker.pkg.dev/ml-oss-artifacts-published/ml-public-container/ml-build:latest" # zizmor: ignore[unpinned-images]
    defaults:
      run:
        shell: bash
    timeout-minutes: 10
    steps:
      - name: "Checking out repository"
        uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
        with:
          persist-credentials: false
      - name: "Run bazel build --nobuild //xla/... with retries"
        run: parallel --ungroup --retries 3 --delay 15 --nonall -- bazel build --nobuild //xla/...
      - name: "Run bazel query //xla/..."
        run: bazel query //xla/... > /dev/null
      - name: "Run bazel query deps(//xla/...)"
        run: bazel query "deps(//xla/...)" > /dev/null
      - name: "Check that TSL doesn't depend on XLA"
        run: |
          bazel query "somepath(//xla/tsl/..., //xla/... -//xla/tsl/...)" 2>&1 | tee query_output.log
          grep -q "INFO: Empty results" query_output.log
