xref: /aosp_15_r20/external/bazelbuild-rules_testing/docs/BUILD (revision d605057434dcabba796c020773aab68d9790ff9f)
1*d6050574SRomain Jobredeaux# Copyright 2023 The Bazel Authors. All rights reserved.
2*d6050574SRomain Jobredeaux#
3*d6050574SRomain Jobredeaux# Licensed under the Apache License, Version 2.0 (the "License");
4*d6050574SRomain Jobredeaux# you may not use this file except in compliance with the License.
5*d6050574SRomain Jobredeaux# You may obtain a copy of the License at
6*d6050574SRomain Jobredeaux#
7*d6050574SRomain Jobredeaux#     http://www.apache.org/licenses/LICENSE-2.0
8*d6050574SRomain Jobredeaux#
9*d6050574SRomain Jobredeaux# Unless required by applicable law or agreed to in writing, software
10*d6050574SRomain Jobredeaux# distributed under the License is distributed on an "AS IS" BASIS,
11*d6050574SRomain Jobredeaux# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d6050574SRomain Jobredeaux# See the License for the specific language governing permissions and
13*d6050574SRomain Jobredeaux# limitations under the License.
14*d6050574SRomain Jobredeaux
15*d6050574SRomain Jobredeauxload("@docs-pypi//:requirements.bzl", "requirement")
16*d6050574SRomain Jobredeauxload("@rules_python//python:pip.bzl", "compile_pip_requirements")
17*d6050574SRomain Jobredeauxload("@rules_python//python:py_binary.bzl", "py_binary")
18*d6050574SRomain Jobredeaux
19*d6050574SRomain Jobredeauxpackage(
20*d6050574SRomain Jobredeaux    default_applicable_licenses = ["//:package_license"],
21*d6050574SRomain Jobredeaux)
22*d6050574SRomain Jobredeaux
23*d6050574SRomain Jobredeauxsh_binary(
24*d6050574SRomain Jobredeaux    name = "run_sphinx_build",
25*d6050574SRomain Jobredeaux    srcs = ["run_sphinx_build.sh"],
26*d6050574SRomain Jobredeaux    args = [
27*d6050574SRomain Jobredeaux        "$(rootpath :sphinx_build)",
28*d6050574SRomain Jobredeaux        "$(rootpath :crossrefs.md)",
29*d6050574SRomain Jobredeaux        "$(rootpaths //docgen:docs)",
30*d6050574SRomain Jobredeaux    ],
31*d6050574SRomain Jobredeaux    data = [
32*d6050574SRomain Jobredeaux        "crossrefs.md",
33*d6050574SRomain Jobredeaux        ":sphinx_build",
34*d6050574SRomain Jobredeaux        ":sphinx_sources",
35*d6050574SRomain Jobredeaux        "//docgen:docs",
36*d6050574SRomain Jobredeaux    ],
37*d6050574SRomain Jobredeaux)
38*d6050574SRomain Jobredeaux
39*d6050574SRomain Jobredeauxpy_binary(
40*d6050574SRomain Jobredeaux    name = "sphinx_build",
41*d6050574SRomain Jobredeaux    srcs = ["sphinx_build.py"],
42*d6050574SRomain Jobredeaux    deps = [
43*d6050574SRomain Jobredeaux        requirement("sphinx"),
44*d6050574SRomain Jobredeaux        requirement("sphinx_rtd_theme"),
45*d6050574SRomain Jobredeaux        requirement("myst_parser"),
46*d6050574SRomain Jobredeaux    ],
47*d6050574SRomain Jobredeaux)
48*d6050574SRomain Jobredeaux
49*d6050574SRomain Jobredeaux# Run bazel run //docs:requirements.update
50*d6050574SRomain Jobredeauxcompile_pip_requirements(
51*d6050574SRomain Jobredeaux    name = "requirements",
52*d6050574SRomain Jobredeaux    requirements_in = "requirements.in",
53*d6050574SRomain Jobredeaux    requirements_txt = "requirements.txt",
54*d6050574SRomain Jobredeaux    # The requirements output differs on Windows, so just restrict it to Linux.
55*d6050574SRomain Jobredeaux    # The build process is only run on, and only works for, Linux anyways.
56*d6050574SRomain Jobredeaux    target_compatible_with = ["@platforms//os:linux"],
57*d6050574SRomain Jobredeaux)
58*d6050574SRomain Jobredeaux
59*d6050574SRomain Jobredeauxfilegroup(
60*d6050574SRomain Jobredeaux    name = "sphinx_sources",
61*d6050574SRomain Jobredeaux    srcs = [
62*d6050574SRomain Jobredeaux        # This isn't generated like the other files under the api directory,
63*d6050574SRomain Jobredeaux        # but it can't go in the glob because the exclude param will ignore it.
64*d6050574SRomain Jobredeaux        "source/api/index.md",
65*d6050574SRomain Jobredeaux    ] + glob(
66*d6050574SRomain Jobredeaux        [
67*d6050574SRomain Jobredeaux            "**",
68*d6050574SRomain Jobredeaux        ],
69*d6050574SRomain Jobredeaux        exclude = [
70*d6050574SRomain Jobredeaux            "source/api/**",  # These are all generated files
71*d6050574SRomain Jobredeaux            "_build/**",
72*d6050574SRomain Jobredeaux        ],
73*d6050574SRomain Jobredeaux    ),
74*d6050574SRomain Jobredeaux)
75