| load("@bazel_skylib//rules:diff_test.bzl", "diff_test") |
| load("@bazel_skylib//rules:write_file.bzl", "write_file") |
| |
| # This list must be updated when we add a new command |
| # buildifier: keep sorted |
| _DOCS = [ |
| "aspect.md", |
| "aspect_build.md", |
| "aspect_clean.md", |
| "aspect_docs.md", |
| "aspect_info.md", |
| "aspect_test.md", |
| "aspect_version.md", |
| ] |
| |
| genrule( |
| name = "docgen", |
| outs = ["gen/" + d for d in _DOCS], |
| cmd = "$(execpath //cmd/docgen) $(@D)/gen", |
| tools = ["//cmd/docgen"], |
| ) |
| |
| # Help developers who get a red CI result by telling them how to fix it |
| _failure_message = "\nPlease update the docs by running\n bazel run //docs:update" |
| |
| [ |
| diff_test( |
| name = "check_" + file, |
| failure_message = _failure_message, |
| file1 = "gen/" + file, |
| file2 = file, |
| ) |
| for file in _DOCS |
| ] |
| |
| write_file( |
| name = "gen_update", |
| out = "update.sh", |
| content = [ |
| "#!/usr/bin/env bash", |
| "cd $BUILD_WORKSPACE_DIRECTORY", |
| ] + [ |
| "cp -fv bazel-bin/docs/gen/{0} docs/{0}".format(file) |
| for file in _DOCS |
| ], |
| ) |
| |
| sh_binary( |
| name = "update", |
| srcs = ["update.sh"], |
| data = ["gen/" + d for d in _DOCS], |
| ) |