| """Bazel Modules used by the Skia Infra repository.""" |
| |
| module( |
| name = "skia-infra", |
| version = "0.0.0", |
| ) |
| |
| bazel_dep(name = "aspect_bazel_lib", version = "2.21.1") |
| bazel_dep(name = "aspect_rules_esbuild", version = "0.25.0") |
| bazel_dep(name = "aspect_rules_js", version = "2.5.0") |
| bazel_dep(name = "aspect_rules_ts", version = "3.7.0") |
| bazel_dep(name = "buildifier_prebuilt", version = "8.2.1") |
| bazel_dep(name = "rules_go", version = "0.58.3") # Needs to go before Gazelle. |
| bazel_dep(name = "gazelle") |
| |
| # This version of Gazelle has been patched with directives for |
| # go.chromium.org/luci and github.com/bazelbuild/remote-apis-sdks. We should be |
| # able to remove this git_override when the next version of gazelle is released |
| # to the Bazel Central Registry. |
| git_override( |
| module_name = "gazelle", |
| commit = "58be1038215b0cff6604a1d31f45ae3770a99a75", |
| remote = "https://github.com/bazel-contrib/bazel-gazelle", |
| ) |
| |
| bazel_dep(name = "protobuf", version = "33.0", repo_name = "com_google_protobuf") |
| bazel_dep(name = "rules_browsers", version = "0.2.0") |
| bazel_dep(name = "rules_apko", version = "1.4.0") |
| bazel_dep(name = "rules_distroless", version = "0.6.1") |
| bazel_dep(name = "rules_nodejs", version = "6.5.0") |
| bazel_dep(name = "rules_pkg", version = "1.1.0") |
| bazel_dep(name = "rules_proto", version = "7.1.0") |
| bazel_dep(name = "rules_python", version = "1.6.0") |
| bazel_dep(name = "rules_shell", version = "0.6.1") |
| bazel_dep(name = "bazel_skylib", version = "1.8.2") |
| bazel_dep(name = "rules_oci", version = "2.2.7") |
| bazel_dep(name = "googleapis", version = "0.0.0-20251127-8cd3749f") |
| bazel_dep(name = "grpc", version = "1.76.0.bcr.1") |
| bazel_dep(name = "abseil-cpp", version = "20250814.1") |
| bazel_dep(name = "rules_cc", version = "0.2.14") |
| bazel_dep(name = "platforms", version = "1.0.0") |
| bazel_dep(name = "xds", version = "0.0.0-20251210-ee656c7") |
| |
| http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") |
| |
| http_file = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file") |
| |
| git_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") |
| |
| git_repository( |
| name = "swiftshader", |
| build_file_content = """ |
| filegroup( |
| name = "all_files", |
| srcs = glob(["include/**/*"]), |
| visibility = ["//visibility:public"] |
| ) |
| """, |
| commit = "3c4bdf66d81d01a215b88bfea3ac4cc8ca507779", |
| remote = "https://swiftshader.googlesource.com/SwiftShader", |
| ) |
| |
| gcs_mirror = use_extension("//bazel:gcs_mirror.bzl", "gcs_mirror") |
| |
| #################################################################################################### |
| # rules_apko setup |
| #################################################################################################### |
| |
| apko = use_extension("@rules_apko//apko:extensions.bzl", "apko") |
| apko.toolchain(apko_version = "0.22.0") |
| apko.translate_lock( |
| name = "basealpine-apk-install", |
| lock = "@@//kube/basealpine:basealpine.lock.json", |
| ) |
| use_repo(apko, "basealpine-apk-install") |
| |
| #################################################################################################### |
| # aspect_rules_ts setup |
| #################################################################################################### |
| |
| rules_ts_ext = use_extension( |
| "@aspect_rules_ts//ts:extensions.bzl", |
| "ext", |
| dev_dependency = True, |
| ) |
| rules_ts_ext.deps( |
| ts_version_from = "//:package.json", |
| ) |
| use_repo(rules_ts_ext, "npm_typescript") |
| |
| #################################################################################################### |
| # Go setup |
| #################################################################################################### |
| |
| go_deps = use_extension("@gazelle//:extensions.bzl", "go_deps") |
| |
| go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk") |
| |
| go_deps.from_file(go_mod = "//:go.mod") |
| use_repo( |
| go_deps, |
| "com_github_a8m_envsubst", |
| "com_github_aclements_go_moremath", |
| "com_github_bazelbuild_buildtools", |
| "com_github_bazelbuild_remote_apis", |
| "com_github_bazelbuild_remote_apis_sdks", |
| "com_github_blakesmith_ar", |
| "com_github_bradfitz_gomemcache", |
| "com_github_cenkalti_backoff", |
| "com_github_cenkalti_backoff_v4", |
| "com_github_cockroachdb_cockroach_go_v2", |
| "com_github_davecgh_go_spew", |
| "com_github_dustin_go_humanize", |
| "com_github_fatih_color", |
| "com_github_fiorix_go_web", |
| "com_github_flynn_json5", |
| "com_github_go_chi_chi_v5", |
| "com_github_go_python_gpython", |
| "com_github_golang_groupcache", |
| "com_github_golang_mock", |
| "com_github_golang_protobuf", |
| "com_github_google_go_cmp", |
| "com_github_google_go_github_v29", |
| "com_github_google_go_licenses_v2", |
| "com_github_google_shlex", |
| "com_github_google_uuid", |
| "com_github_googleapis_gax_go_v2", |
| "com_github_googlecloudplatform_opentelemetry_operations_go_exporter_trace", |
| "com_github_gorilla_securecookie", |
| "com_github_grpc_ecosystem_grpc_gateway_v2", |
| "com_github_hako_durafmt", |
| "com_github_hashicorp_go_multierror", |
| "com_github_hashicorp_golang_lru", |
| "com_github_invopop_jsonschema", |
| "com_github_jackc_pgconn", |
| "com_github_jackc_pgerrcode", |
| "com_github_jackc_pgtype", |
| "com_github_jackc_pgx_v4", |
| "com_github_jcgregorio_logger", |
| "com_github_jeffail_gabs_v2", |
| "com_github_kballard_go_shellquote", |
| "com_github_kisielk_errcheck", |
| "com_github_mark3labs_mcp_go", |
| "com_github_masterminds_semver", |
| "com_github_masterminds_sprig", |
| "com_github_miekg_dns", |
| "com_github_mikefarah_yq_v4", |
| "com_github_nfnt_resize", |
| "com_github_nlpodyssey_gopickle", |
| "com_github_olekukonko_tablewriter", |
| "com_github_otiai10_copy", |
| "com_github_patrickmn_go_cache", |
| "com_github_pkg_errors", |
| "com_github_pmezard_go_difflib", |
| "com_github_prometheus_client_golang", |
| "com_github_protocolbuffers_txtpbfmt", |
| "com_github_r3labs_sse_v2", |
| "com_github_redis_go_redis_v9", |
| "com_github_rs_cors", |
| "com_github_sbinet_npyio", |
| "com_github_shirou_gopsutil", |
| "com_github_skia_dev_google_api_go_client", |
| "com_github_skia_dev_protoc_gen_twirp_typescript", |
| "com_github_spf13_cobra", |
| "com_github_stretchr_testify", |
| "com_github_syndtr_goleveldb", |
| "com_github_tarm_serial", |
| "com_github_texttheater_golang_levenshtein", |
| "com_github_twitchtv_twirp", |
| "com_github_unrolled_secure", |
| "com_github_urfave_cli_v2", |
| "com_github_vektra_mockery_v2", |
| "com_github_willf_bitset", |
| "com_github_xeipuuv_gojsonschema", |
| "com_github_yannh_kubeconform", |
| "com_github_yusufpapurcu_wmi", |
| "com_github_zeebo_bencode", |
| "com_google_cloud_go", |
| "com_google_cloud_go_auth", |
| "com_google_cloud_go_bigquery", |
| "com_google_cloud_go_bigtable", |
| "com_google_cloud_go_binaryauthorization", |
| "com_google_cloud_go_compute_metadata", |
| "com_google_cloud_go_containeranalysis", |
| "com_google_cloud_go_datastore", |
| "com_google_cloud_go_firestore", |
| "com_google_cloud_go_iam", |
| "com_google_cloud_go_logging", |
| "com_google_cloud_go_monitoring", |
| "com_google_cloud_go_pubsub", |
| "com_google_cloud_go_redis", |
| "com_google_cloud_go_secretmanager", |
| "com_google_cloud_go_spanner", |
| "com_google_cloud_go_storage", |
| "in_gopkg_fsnotify_v1", |
| "in_gopkg_olivere_elastic_v5", |
| "in_gopkg_yaml_v2", |
| "in_gopkg_yaml_v3", |
| "io_k8s_api", |
| "io_k8s_apimachinery", |
| "io_k8s_client_go", |
| "io_k8s_kubectl", |
| "io_k8s_sigs_yaml", |
| "io_opencensus_go", |
| "io_opencensus_go_contrib_exporter_stackdriver", |
| "io_opentelemetry_go_otel", |
| "io_opentelemetry_go_otel_bridge_opencensus", |
| "io_opentelemetry_go_otel_sdk", |
| "io_temporal_go_api", |
| "io_temporal_go_sdk", |
| "io_temporal_go_sdk_contrib_opentelemetry", |
| "net_howett_plist", |
| "org_chromium_go_luci", |
| "org_golang_google_api", |
| "org_golang_google_genai", |
| "org_golang_google_genproto", |
| "org_golang_google_genproto_googleapis_api", |
| "org_golang_google_genproto_googleapis_rpc", |
| "org_golang_google_grpc", |
| "org_golang_google_grpc_cmd_protoc_gen_go_grpc", |
| "org_golang_google_protobuf", |
| "org_golang_x_exp", |
| "org_golang_x_net", |
| "org_golang_x_oauth2", |
| "org_golang_x_sync", |
| "org_golang_x_sys", |
| "org_golang_x_term", |
| "org_golang_x_time", |
| "org_golang_x_tools", |
| ) |
| |
| inject_repo( |
| go_deps, |
| googleapis = "googleapis", |
| grpc = "grpc", |
| protobuf = "com_google_protobuf", |
| rules_go = "rules_go", |
| ) |
| |
| go_sdk.from_file( |
| go_mod = "//:go.mod", |
| ) |
| use_repo(go_sdk, go_sdk = "go_default_sdk") |
| |
| register_toolchains("@rules_go//go/toolchain:all") |
| |
| #################################################################################################### |
| # pnpm setup |
| #################################################################################################### |
| |
| node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node") |
| node.toolchain(node_version = "18.15.0") |
| use_repo(node, "nodejs_toolchains") |
| use_repo(node, "nodejs") |
| |
| pnpm = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm") |
| pnpm.pnpm( |
| name = "pnpm", |
| pnpm_version = "10.13.1", |
| ) |
| use_repo(pnpm, "pnpm") |
| |
| npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm") |
| npm.npm_translate_lock( |
| name = "npm", |
| additional_file_contents = {}, |
| bins = {}, |
| custom_postinstalls = {}, |
| data = [ |
| "//:package.json", |
| ], |
| dev = False, |
| external_repository_action_cache = ".aspect/rules/external_repository_action_cache", |
| lifecycle_hooks = { |
| "*": [ |
| "preinstall", |
| "install", |
| "postinstall", |
| ], |
| }, |
| lifecycle_hooks_envs = {}, |
| lifecycle_hooks_execution_requirements = { |
| "*": [ |
| "no-sandbox", |
| ], |
| }, |
| no_optional = False, |
| npm_package_lock = "//:package-lock.json", |
| npm_package_target_name = "{dirname}", |
| npmrc = "//:.npmrc", |
| package_visibility = {}, |
| patch_args = { |
| "*": [ |
| "-p0", |
| ], |
| }, |
| patches = {}, |
| pnpm_lock = "//:pnpm-lock.yaml", |
| preupdate = [], |
| prod = False, |
| quiet = False, |
| update_pnpm_lock = True, |
| verify_node_modules_ignored = "//:.bazelignore", |
| ) |
| use_repo( |
| npm, |
| "npm", |
| ) |
| |
| #################################################################################################### |
| # rules_python setup |
| #################################################################################################### |
| |
| python_version = "3.11" |
| |
| python = use_extension("@rules_python//python/extensions:python.bzl", "python") |
| python.toolchain( |
| configure_coverage_tool = True, |
| ignore_root_user_error = True, |
| python_version = python_version, |
| ) |
| use_repo(python, "python_3_11") |
| |
| pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip") |
| pip.parse( |
| download_only = True, |
| extra_pip_args = ["--index-url=https://pypi.org/simple"], |
| hub_name = "pypi", |
| python_version = python_version, |
| requirements_lock = "//:requirements.txt", |
| ) |
| use_repo(pip, "pypi") |
| |
| #################################################################################################### |
| # rules_distroless setup |
| #################################################################################################### |
| |
| apt = use_extension("@rules_distroless//apt:extensions.bzl", "apt") |
| |
| # These are sets of packages installed in various images. |
| apt.install( |
| name = "autoroll-be-apt-install", |
| lock = "@@//autoroll:autoroll-be.lock.json", |
| manifest = "//autoroll:autoroll-be.yaml", |
| ) |
| use_repo(apt, "autoroll-be-apt-install") |
| |
| apt.install( |
| name = "base-cipd-apt-install", |
| lock = "@@//kube/base-cipd:base-cipd.lock.json", |
| manifest = "//kube/base-cipd:base-cipd.yaml", |
| ) |
| use_repo(apt, "base-cipd-apt-install") |
| |
| apt.install( |
| name = "fiddler-base-apt-install", |
| lock = "@@//fiddlek:fiddler-base.lock.json", |
| manifest = "//fiddlek:fiddler-base.yaml", |
| ) |
| use_repo(apt, "fiddler-base-apt-install") |
| |
| apt.install( |
| name = "cd-apt-install", |
| lock = "@@//cd:cd.lock.json", |
| manifest = "//cd:cd.yaml", |
| ) |
| use_repo(apt, "cd-apt-install") |
| |
| apt.install( |
| name = "docsyserver-apt-install", |
| lock = "@@//docsyserver:docsyserver.lock.json", |
| manifest = "//docsyserver:docsyserver.yaml", |
| ) |
| use_repo(apt, "docsyserver-apt-install") |
| |
| apt.install( |
| name = "task-scheduler-jc-apt-install", |
| lock = "@@//task_scheduler:task-scheduler-jc.lock.json", |
| manifest = "//task_scheduler:task-scheduler-jc.yaml", |
| ) |
| use_repo(apt, "task-scheduler-jc-apt-install") |
| |
| #################################################################################################### |
| # Bazelisk |
| #################################################################################################### |
| |
| # This is sort of a circular dependency, but some of our Docker images need a |
| # copy of Bazelisk to perform builds. It's convenient to define that here. |
| http_file( |
| name = "bazelisk", |
| downloaded_file_path = "bazelisk", |
| executable = True, |
| sha256 = "e1508323f347ad1465a887bc5d2bfb91cffc232d11e8e997b623227c6b32fb76", |
| url = "https://github.com/bazelbuild/bazelisk/releases/download/v1.27.0/bazelisk-linux-amd64", |
| ) |
| |
| ###################### |
| # Docker containers. # |
| ###################### |
| |
| oci = use_extension("@rules_oci//oci:extensions.bzl", "oci") |
| |
| # This is a pinned version of JS fiddle - we use the canvaskit.js/canvaskit.wasm inside it |
| # when running apps (e.g. skottie.skia.org) locally. All our apps (except debugger) use the stock |
| # version of CanvasKit, so they can share this. If there is an update to CanvasKit APIs and we want |
| # to test them out locally, we should update this to a newer version. See the k8s-config repo |
| # for a recent commit to use. You can also get the latest sha256 by either: |
| # 1. Running `docker pull gcr.io/skia-public/jsfiddle-final:latest` and looking for the sha256 |
| # in the log. This requires docker to be installed and authenticated through gcloud. |
| # 2. Going to https://skia.googlesource.com/k8s-config/+/refs/heads/main/skia-infra-public/jsfiddle.yaml |
| # and looking for sha256 on the jsfiddle-final image. |
| oci.pull( |
| name = "pinned_jsfiddle", |
| digest = "sha256:d6013d71a8bbb7333fd1c5568a879646eb0c750680e96369643d5bd3c30fcdb6", |
| image = "gcr.io/skia-public/jsfiddle-final", |
| ) |
| use_repo(oci, "pinned_jsfiddle") |
| |
| # Debugger's version of CanvasKit is built with different flags |
| oci.pull( |
| name = "pinned_debugger", |
| digest = "sha256:49adebd992932a764377aff1ba9aed0071ac0ff4da2b6a3fab13a919f9ea29d8", |
| image = "gcr.io/skia-public/debugger-app-final", |
| ) |
| use_repo(oci, "pinned_debugger") |
| |
| # This is an arbitrary version of the public Alpine image. Given our current rules, we must pull |
| # a docker container and extract some files, even if we are just building local versions (e.g. |
| # of debugger or skottie), so this is the image for that. |
| oci.pull( |
| name = "empty_container", |
| digest = "sha256:1e014f84205d569a5cc3be4e108ca614055f7e21d11928946113ab3f36054801", |
| image = "index.docker.io/alpine", |
| ) |
| use_repo(oci, "empty_container") |
| |
| # Pulls the gcr.io/skia-public/basealpine container, needed by the skia_app_container macro. |
| oci.pull( |
| name = "basealpine", |
| digest = "sha256:5474db9668fb91cbf71b160e41047ca48a7686a25b7e3d38da9f1c720683e2c7", |
| image = "gcr.io/skia-public/basealpine", |
| ) |
| use_repo(oci, "basealpine") |
| |
| # Pulls a specific version of Alpine to be used as a base for basealpine. |
| oci.pull( |
| name = "alpine", |
| digest = "sha256:e0baf8c394150ac5a14925e179100519f5e37c53547f647acbd9f8eb3e5c4528", |
| image = "alpine:3.22", |
| ) |
| use_repo(oci, "alpine") |
| |
| # Pulls the debian:testing-slim image, needed by the skia_app_container macro. |
| # Note: if using apt.install in conjunction with this or any other base image, |
| # the archive version in the YAML file must be compatible with this image. |
| oci.pull( |
| name = "debian-testing-slim", |
| digest = "sha256:0aff819e18d66aa7e3795a5145494f7bfbf55df4710494fa9746c2df1b51231b", |
| image = "debian:testing-slim", |
| platforms = ["linux/amd64"], |
| ) |
| use_repo(oci, "debian-testing-slim") |
| |
| # Pulls the gcr.io/skia-public/docsyserver-base container, needed by docsyserver. |
| oci.pull( |
| name = "docsyserver-base", |
| digest = "sha256:c92739a43735be44a28135c9eac75753c64c2d3b9ba5c97efcaf57d5bd2ab12a", |
| image = "gcr.io/skia-public/docsyserver-base", |
| ) |
| use_repo(oci, "docsyserver-base") |
| |
| # Pulls the envoyproxy/envoy-alpine:v1.16.1 container, needed by skfe. |
| oci.pull( |
| name = "envoy_alpine", |
| digest = "sha256:061559f887b6b7980ea1ebb5af636079858d8b0f51cd803b9fe16f87811ff7d3", |
| image = "index.docker.io/envoyproxy/envoy-alpine", |
| ) |
| use_repo(oci, "envoy_alpine") |
| |
| # Pulls the node alpine container, needed by npm-audit-mirror. |
| oci.pull( |
| name = "node_alpine", |
| digest = "sha256:1e168eaa83acc4b002f7b91bd3584f6800c84737337fe665224c963ed6b5b1c0", # index.docker.io/node:current-alpine3.21 as of Oct 2, 2025. |
| image = "docker.io/library/node", |
| ) |
| use_repo(oci, "node_alpine") |
| |
| # Pulls the https://gcr.io/cloud-builders/kubectl container, needed by apps that use kubectl. |
| oci.pull( |
| name = "kubectl", |
| digest = "sha256:63553d791cbdd3aa9fc2bc0b3a6a6d33130c1b8927b2db368c756aa45c89a356", # 25 Oct 2023 |
| image = "gcr.io/cloud-builders/kubectl", |
| ) |
| use_repo(oci, "kubectl") |
| |
| # Pulls the gcr.io/google.com/cloudsdktool/cloud-sdk:latest container needed by Perf backup. |
| oci.pull( |
| name = "cloudsdk", |
| digest = "sha256:900b74f1fb2c9f93c6d4b121a7f23981143496f36aacb72e596ccaedad640cf1", # @latest as of Apr 27, 2022. |
| image = "gcr.io/google.com/cloudsdktool/cloud-sdk", |
| ) |
| use_repo(oci, "cloudsdk") |
| |
| # Pulls the google-go.pkg.dev/golang image. |
| oci.pull( |
| name = "golang", |
| digest = "sha256:80ccdc8f8ac8d819cdbc15a33334125e0288c09ac030307dcd893d2b5c6179ae", |
| image = "google-go.pkg.dev/golang", |
| ) |
| use_repo(oci, "golang") |
| |
| # Pulls the gcr.io/skia-public/fiddler-build-skia image. |
| oci.pull( |
| name = "fiddler-build-skia", |
| digest = "sha256:8eea043f967e6850c3ea97d1b1a6e9a5faa704fdc86138ac5444f56af0b258c5", |
| image = "gcr.io/skia-public/fiddler-build-skia", |
| ) |
| use_repo(oci, "fiddler-build-skia") |
| |
| # docker.io/temporalio/server:1.23.1 as of 12/16/2025. |
| oci.pull( |
| name = "temporal-server", |
| digest = "sha256:6831458b0f15efc3aa9f1df82d9e3da9f78c18e1eb310b67ffb6040362ed2f9d", |
| image = "docker.io/temporalio/server", |
| platforms = ["linux/amd64"], |
| ) |
| use_repo(oci, "temporal-server") |
| |
| # docker.io/temporalio/admin-tools:1.23.1.1-tctl-1.18.1-cli-0.12.0 as of 12/16/2025. |
| oci.pull( |
| name = "temporal-admin-tools", |
| digest = "sha256:c2954b70ed48ba715ba53684e9ee81e094a5619879398042db9cffe7b8aa9d50", |
| image = "docker.io/temporalio/admin-tools", |
| platforms = ["linux/amd64"], |
| ) |
| use_repo( |
| oci, |
| "temporal-admin-tools", |
| "temporal-admin-tools_linux_amd64", |
| "temporal-server_linux_amd64", |
| ) |
| |
| #################################################################################################### |
| # CA Certificates |
| #################################################################################################### |
| |
| gcs_mirror.http_archive( |
| name = "ca-certificates", |
| build_file_content = "exports_files([\"data.tar.xz\"])", |
| sha256 = "ef590f89563aa4b46c8260d49d1cea0fc1b181d19e8df3782694706adf05c184", |
| url = "https://snapshot-cloudflare.debian.org/archive/debian/20260201T022025Z/pool/main/c/ca-certificates/ca-certificates_20250419_all.deb", |
| ) |
| use_repo(gcs_mirror, "ca-certificates") |
| |
| #################################################################################################### |
| # bazel_skylib |
| #################################################################################################### |
| |
| # These are used for unit tests. |
| register_toolchains( |
| "@bazel_skylib//toolchains/unittest:cmd_toolchain", |
| ) |
| |
| #################################################################################################### |
| # CIPD packages. |
| #################################################################################################### |
| |
| cipd = use_extension("//bazel/external:cipd_install.bzl", "cipd") |
| cipd.download_http( |
| name = "git", |
| cipd_package = "infra/3pp/tools/git/${platform}", |
| platform_to_sha256 = { |
| "linux-amd64": "e05a68d6b6293e2288253bf0353291e2cdaa98b978af40cf725124daaa6b30f6", |
| "linux-arm64": "730f1713bd067e34af3c6d83d952ba744e98137ff1d3806d07cec1dff9a1dcd6", |
| "mac-amd64": "9dfca236b5a00e190e6fcbecee321f08b536fcab2883288223d0788763072994", |
| "mac-arm64": "cf4e32417e6494838abc83dcb8a69887d4d7682f0b29e3b76cf7960fe6c06e4f", |
| "windows-amd64": "669c31c14d97e8a4be6f7c4dcd2de3d54b791782ec32586f25645497d20a66ca", |
| }, |
| postinstall_cmds_posix = [ |
| "mkdir etc", |
| "bin/git config --system user.name \"Bazel Test User\"", |
| "bin/git config --system user.email \"bazel-test-user@example.com\"", |
| ], |
| postinstall_cmds_win = [ |
| "mkdir etc", |
| "bin/git.exe config --system user.name \"Bazel Test User\"", |
| "bin/git.exe config --system user.email \"bazel-test-user@example.com\"", |
| ], |
| tag = "version:3@2.51.2.chromium.11", |
| ) |
| use_repo(cipd, "git_linux-amd64", "git_windows-amd64") |
| |
| cipd.download_http( |
| name = "git_wrapper", |
| cipd_package = "infra/tools/git/${platform}", |
| platform_to_sha256 = { |
| "linux-amd64": "32322eb1cf3b6bf94fde906eaf8807458ed4a84303bc9259e8376f678bf6280b", |
| "linux-arm64": "312e73c513741cbb6dff1ec266d470e090ebc7340452006514e16ca992b37382", |
| "mac-amd64": "c66b7463e2f3a18b91edc7b4b79e342e1f16afc2d8c6e252b28a8be484249c7c", |
| "mac-arm64": "d16d0d464c5c53a5a373759aead290a161b4f6e3bb4ea59b8adf09beadafee89", |
| "windows-amd64": "cf2cd3bea8a65611eb7ba9922979a70fe26fe744d4bd543d3bc92ead857f73c1", |
| }, |
| tag = "git_revision:b2fad5ab18774b86d84aa867287bfb4f2394893b", |
| ) |
| use_repo(cipd, "git_wrapper_linux-amd64") |
| |
| cipd.download_http( |
| name = "luci-auth", |
| cipd_package = "infra/tools/luci-auth/${platform}", |
| platform_to_sha256 = { |
| "linux-amd64": "b909c4bea98b2f358ea01e151c7fa7aa4efd456f0bf765bf656b1fec0ce14e86", |
| "linux-arm64": "b0b0ae15f2bcbb00ae385f055518df25be8143d03a5486374acb4a0d30bf6202", |
| "mac-amd64": "49fcace4c997b0fd4f0ef069e103839fffb8c35aee0a2d8d1e2b9e2193accf83", |
| "mac-arm64": "8e484132e0e140e91874a1b406b1a7d9449d893c4d835f943af2a0fc1aa359d6", |
| "windows-amd64": "85e08f278a279a6086ec9cbc0ee3ff9a6e9d2669af136553d4b569c3b413a0fe", |
| }, |
| tag = "git_revision:da8829f4f05eb5ea39839536b76cd252a45d4a17", |
| ) |
| use_repo(cipd, "luci-auth_linux-amd64") |
| |
| cipd.download_http( |
| name = "docker-credential-luci", |
| cipd_package = "infra/tools/luci/docker-credential-luci/${platform}", |
| platform_to_sha256 = { |
| "linux-amd64": "1ad5ccdfb711e7f468706aa2687da901723fcf2dc3faadead1546968475cf292", |
| "linux-arm64": "07ccf65ca476e74d309bf39d23d2a13e9b94a9d357c30eb12146cb191c5eca40", |
| "mac-amd64": "a68e51ccb5a3d5a5648b12c2cf944edf9522fe9c1bbf4b25c20a3a7b279dc811", |
| "mac-arm64": "640022927e4c653c64bf7844e40c67fb6c566dd5a4f0a7df67384dfe98a25686", |
| "windows-amd64": "3fe7b463e8c09c6b805c24296ef840cf0ff6a039c1915d87811d5c8ade6dc076", |
| }, |
| tag = "git_revision:b2fad5ab18774b86d84aa867287bfb4f2394893b", |
| ) |
| use_repo(cipd, "docker-credential-luci_linux-amd64") |
| |
| cipd.download_http( |
| name = "git-credential-luci", |
| cipd_package = "infra/tools/luci/git-credential-luci/${platform}", |
| platform_to_sha256 = { |
| "linux-amd64": "a3e3232c25af9309fd64c78808548d8cebb7e6d1809ae6081a6d0c8e1ef4c6dc", |
| "linux-arm64": "5a3e690887d7d8792a4d8fbba07f7e1e019293f08b5865b0f641a6024dc7c0e4", |
| "mac-amd64": "fbae67cbafe27a0548e2ec23021d070b87911e5f8940dea9a9e89b646f40a3e7", |
| "mac-arm64": "5fcc0839d90cd61a804d7091f600a2049e2934f6c558612ec689f1a4d68b707d", |
| "windows-amd64": "36489649e0a36ab82709aacc830217df618f8300307bc863ba4867ac9ee478f4", |
| }, |
| tag = "git_revision:b2fad5ab18774b86d84aa867287bfb4f2394893b", |
| ) |
| use_repo(cipd, "git-credential-luci_linux-amd64") |
| |
| cipd.download_http( |
| name = "isolate", |
| cipd_package = "infra/tools/luci/isolate/${platform}", |
| platform_to_sha256 = { |
| "linux-amd64": "2b80e444d8b43d59187914988bec06c44ba3a56fae69f77b24a062927d673646", |
| "linux-arm64": "79e7debc6bb6adaf273e6d6460f6337f8cc849978ce577a67cd5df9a72bbb57c", |
| "mac-amd64": "68a4fd06af52317d1fe6f443ec474412d720aeb875cd0d1e717cc1cf7d4446c5", |
| "mac-arm64": "cd2e2e7e04dcd5ba8bcffc0c901dc9ed753c8d9b7a5c2e9f177083c63da74424", |
| "windows-amd64": "0b2e1ab829dbecf86920043d1bdbb718dcbecb3075d5238e63291756b8f29e66", |
| }, |
| tag = "git_revision:b2fad5ab18774b86d84aa867287bfb4f2394893b", |
| ) |
| use_repo(cipd, "isolate_linux-amd64") |
| |
| cipd.download_http( |
| name = "lucicfg", |
| cipd_package = "infra/tools/luci/lucicfg/${platform}", |
| platform_to_sha256 = { |
| "linux-amd64": "4726c92d69c0ff839b38f9d11556b3bed39e52aaf34f1e154b6993411e32a3da", |
| "linux-arm64": "61b6ccab0c92562417a2b4be938c441f3dd8e1c6d366c599d837bf70ab3a4048", |
| "mac-amd64": "89c5dd9fbba082c66d1b6b9f09900192d5f3ac7c179d2fed437f3dd164460f4a", |
| "mac-arm64": "499dd4248ba56bb7949628b45b694f1b54b09afdcbf6ec4f301420f8b8869a53", |
| "windows-amd64": "38b11f46bc74ce06bb5f7a401e826e1f65c42e27aa9da0c9b669cfbdf448451c", |
| }, |
| tag = "git_revision:b2fad5ab18774b86d84aa867287bfb4f2394893b", |
| ) |
| use_repo(cipd, "lucicfg_linux-amd64") |
| |
| cipd.download_http( |
| name = "swarming", |
| cipd_package = "infra/tools/luci/swarming/${platform}", |
| platform_to_sha256 = { |
| "linux-amd64": "ccba6e61710ebfe51df235299d6605e3f9dbf421e35d9e4bef13b411c99e572a", |
| "linux-arm64": "27f45272e7ab65d4b41acdfdb1be4a34bd94cc7965374e0fd771fb3104dfe37e", |
| "mac-amd64": "dc6a7a2f24c92df77e45e9277d06897804c601c1cfe3b1b6ab27166c22737721", |
| "mac-arm64": "9d83c794a3b16e6d8c6b8dec5d5894817fbf6af49d547b9c92c7a2aff92aa93a", |
| "windows-amd64": "b85d19b07fe818e1aa57a6338a7ea14abfc2ab4f535657c692a6eca160bb72d3", |
| }, |
| tag = "git_revision:b2fad5ab18774b86d84aa867287bfb4f2394893b", |
| ) |
| use_repo(cipd, "swarming_linux-amd64") |
| |
| cipd.download_http( |
| name = "vpython3", |
| cipd_package = "infra/tools/luci/vpython3/${platform}", |
| platform_to_sha256 = { |
| "linux-amd64": "77a6ae4f9cdf9aefbc5b3756f3747822c9893ca534d15348dd231608c1639218", |
| "linux-arm64": "0404caf09afbc84bdd6c05be90c278146f4dd4979f166cf1b582402ec44098b4", |
| "mac-amd64": "c3b90cfddb15a6d4832b57690662f921145478988b51e312bb646afbdea6777b", |
| "mac-arm64": "cbeace913e7577417fcf76f75291562a70a8b1013d18f899d079168c3ea7efd3", |
| "windows-amd64": "adb16f143ce92aa3fb4341921a867dbf72ed13e78b32889a2d31eba8b148998a", |
| }, |
| tag = "git_revision:b2fad5ab18774b86d84aa867287bfb4f2394893b", |
| ) |
| use_repo(cipd, "vpython3_linux-amd64") |
| |
| cipd.download_http( |
| name = "gsutil", |
| cipd_package = "skia/bots/gsutil", |
| sha256 = "ce033513e57dae147ad2c87acb2c62e5766d8323e0f5b75de8c71cd64e390d9b", |
| tag = "version:6", |
| ) |
| use_repo(cipd, "gsutil") |
| |
| cipd.download_http( |
| name = "patch_linux_amd64", |
| cipd_package = "skia/bots/patch_linux_amd64", |
| sha256 = "757fd36db06f291f77a91aa314b855af449665a606d627ce16c36813464e1df6", |
| tag = "version:0", |
| ) |
| use_repo(cipd, "patch_linux_amd64") |
| |
| cipd.download_http( |
| name = "goldctl", |
| cipd_package = "skia/tools/goldctl/${platform}", |
| platform_to_sha256 = { |
| "linux-amd64": "3e67aa936184f043da1472265c1e37b1b75d86cedba09dc547063d3107bcc58c", |
| "linux-arm64": "13c403e5e63a3db8255c405ddb501f9449139657cd55a545c5536ecbdf82e8d2", |
| "mac-amd64": "a5f57beb4a36e1f760407ade0945bdd05b71b7679c40a53970aa8fe4dbc9e965", |
| "mac-arm64": "c0f347efa8e1ce3f71fe83477f84672b50a3c072533b3d3003302e25be26ec29", |
| "windows-amd64": "eb4f0e72dbaf9b297aa594705499d9d68c302b87a9ba9839e70df378bed1762b", |
| }, |
| tag = "git_revision:b2fad5ab18774b86d84aa867287bfb4f2394893b", |
| ) |
| use_repo(cipd, "goldctl_linux-amd64") |
| |
| cipd.download_http( |
| name = "cpython3", |
| cipd_package = "infra/3pp/tools/cpython3/${platform}", |
| platform_to_sha256 = { |
| "linux-amd64": "a06bad297267859aad818d2d6c9cc2865f4b0087c71dbf020f6b8e0cb92746c2", |
| "linux-arm64": "958a70d8a0f2395a01b728e88c939e504785b7666b361f3ff06842e1d5eb3b9d", |
| "mac-amd64": "787e1e98b6220b4bf887ae04a8a80fb4939ad3c24ca6e2e7753541048c97224a", |
| "mac-arm64": "6c7fb45e6ac6363c00b9820b259132554190a197d65437a0912025fa9c27e161", |
| "windows-amd64": "cdc51dd7d25bc6a249b076e117cdfe29456a93cddd48d4193ca3742a20ea7699", |
| }, |
| tag = "version:3@3.11.9.chromium.36", |
| ) |
| use_repo(cipd, "cpython3_linux-amd64") |
| |
| cipd.download_http( |
| name = "bazel_build_all", |
| cipd_package = "skia/tools/bazel_build_all/${platform}", |
| platform_to_sha256 = { |
| "linux-amd64": "bfa756c89e4be63756207edb12525d05fec76c777fdf431f4b1d455075ae77ca", |
| "linux-arm64": "75baca01167e65446445193350a6f6fb4c8c615ae487b99f858720043de6dabb", |
| "mac-amd64": "62a9be318e90e4ac0e8ccc7cb3a30e8ea125b11b6eb5177c88d180f27dd350aa", |
| "mac-arm64": "4c0224f78a1a750ffc11589ee790f49565725da8eda9a4048e41b7585a8c18b6", |
| "windows-amd64": "90c31ff4c70466cfb98724a85c9920a8274fb07e1dba000d5591240cff06eb27", |
| }, |
| tag = "git_revision:1f820824dd5da21aac21c7d721441ec4ebab36f8", |
| ) |
| use_repo(cipd, "bazel_build_all_linux-amd64") |
| |
| cipd.download_http( |
| name = "bazel_test_all", |
| cipd_package = "skia/tools/bazel_test_all/${platform}", |
| platform_to_sha256 = { |
| "linux-amd64": "554c6459cb4924b3fd34d2604e4f1da3116881abe701dfd0a80fc7615c8c393d", |
| "linux-arm64": "e960b210c55573a58982c24d4b17f65d8433bd1d062659059b83735ea796c082", |
| "mac-amd64": "1041fb16f1f8438a333545d3069394abf4b4048a77e87e7ff7eef3b64be557b0", |
| "mac-arm64": "8a0b02b81b6b50cc547d2e253812a2d40b4f9a42d35a4e223499fd043ef1d6fa", |
| "windows-amd64": "0ede7f2aaad90624ee9d2d3a44f231c5fa6c71a2b6ce07c55f448f76ccbc91e4", |
| }, |
| tag = "git_revision:1f820824dd5da21aac21c7d721441ec4ebab36f8", |
| ) |
| use_repo(cipd, "bazel_test_all_linux-amd64") |
| |
| cipd.download_http( |
| name = "command_wrapper", |
| cipd_package = "skia/tools/command_wrapper/${platform}", |
| platform_to_sha256 = { |
| "linux-amd64": "659458bf34ac199e1b0f19bbf0181d58869bd234b3aab0495eec3e460d8b66ec", |
| "linux-arm64": "ed046a8153162c1496ee8d5c999e75f8cbdc409c59148f752d33e3762f3e6bbc", |
| "mac-amd64": "2c7fd062dd0414ea612e0e8a217a963392be86e173f53698f59e51f77dbb2866", |
| "mac-arm64": "56ae48195899030232db504b7384383ae01b98cb7a0f3ffb2eea160f0538867e", |
| "windows-amd64": "05b88819b0b1b072a80c7ef683dd4ba7b9159979091215388ea16c10d1a7480f", |
| }, |
| tag = "git_revision:e91348a9bf0963b702a1f63605e4096f958722c6", |
| ) |
| use_repo(cipd, "command_wrapper_linux-amd64") |
| |
| cipd.download_http( |
| name = "presubmit", |
| cipd_package = "skia/tools/presubmit/${platform}", |
| platform_to_sha256 = { |
| "linux-amd64": "ae748d0d016e6543b472bc73fd97da7bb55654884bce618470b748bd66afd5ec", |
| "linux-arm64": "2d373639916f0349bf4662f68514b7ddefebeb39600055800ff4a4ed9f972299", |
| "mac-amd64": "1efa54b882d5e47fd56afca705f85a6894a73f09c84a1f28727a2b902e6dfa73", |
| "mac-arm64": "431a4411bc0d2513fc2c7ac04c9c5d5ad3848b671684793fc8639e480d85b049", |
| "windows-amd64": "57cf822fb1545a37028328e7d85e1725efadcef29559650cd2463f3dbd28cfc9", |
| }, |
| tag = "git_revision:1f820824dd5da21aac21c7d721441ec4ebab36f8", |
| ) |
| use_repo(cipd, "presubmit_linux-amd64") |
| |
| cipd.download_http( |
| name = "cipd", |
| cipd_package = "infra/tools/cipd/${platform}", |
| platform_to_sha256 = { |
| "linux-amd64": "73499b0cf6c75f9d51e0f09a3d4acba86b0b9ac6e552db9c1d7797ad23fed922", |
| "linux-arm64": "11a5717a58c26de42540ba593b0282b92e73d8f635934f2adb1d86ac1ec37949", |
| "mac-amd64": "211aa059da36021250c1b95aee9d7f155fbcbef253e73dfe0abe84c60c96a0fc", |
| "mac-arm64": "c9a4674dab0221cd9b863d5954b370b318bf3614d6ccb56e28855720b045732c", |
| "windows-amd64": "0169d7c4e02721cc192103cb6a7e41d956ab8e2c98fde24927afc8a483b627ff", |
| }, |
| tag = "git_revision:b2fad5ab18774b86d84aa867287bfb4f2394893b", |
| ) |
| use_repo(cipd, "cipd_linux-amd64") |
| |
| cipd.download_http( |
| name = "kitchen", |
| cipd_package = "infra/tools/luci/kitchen/${platform}", |
| platform_to_sha256 = { |
| "linux-amd64": "3484b06700583f5a89e209b868c197580c48f5133681976cabad960a237b8c0b", |
| "linux-arm64": "4d7a7bfd07c81280bf52940a2acf04d4bad58d4c12d6e63becee7b0dbe429140", |
| "mac-amd64": "fc1a847cd20f15000425b4f12bf269088227ecb6f03cea9e3623f5dbda8ee94d", |
| "mac-arm64": "ddfdb47d396c092599c7406f109a6263a13678f55bf40df2f3af4cb222b5e79b", |
| "windows-amd64": "b295cd774fa257e57515f53efe67dc25c2f166c03d6094d14f0a5abd2bc25fd9", |
| }, |
| tag = "git_revision:b2fad5ab18774b86d84aa867287bfb4f2394893b", |
| ) |
| use_repo(cipd, "kitchen_linux-amd64") |
| |
| #################################################################################################### |
| # protoc. |
| #################################################################################################### |
| |
| # The following archives were taken from |
| # https://github.com/protocolbuffers/protobuf/releases/tag/v21.12. |
| PROTOC_BUILD_FILE_CONTENT = """ |
| exports_files(["bin/protoc"], visibility = ["//visibility:public"]) |
| """ |
| |
| gcs_mirror.http_archive( |
| name = "protoc_linux_x64", |
| build_file_content = PROTOC_BUILD_FILE_CONTENT, |
| sha256 = "3a4c1e5f2516c639d3079b1586e703fc7bcfa2136d58bda24d1d54f949c315e8", |
| url = "https://github.com/protocolbuffers/protobuf/releases/download/v21.12/protoc-21.12-linux-x86_64.zip", |
| ) |
| use_repo(gcs_mirror, "protoc_linux_x64") |
| |
| gcs_mirror.http_archive( |
| name = "protoc_mac_x64", |
| build_file_content = PROTOC_BUILD_FILE_CONTENT, |
| sha256 = "9448ff40278504a7ae5139bb70c962acc78c32d8fc54b4890a55c14c68b9d10a", |
| url = "https://github.com/protocolbuffers/protobuf/releases/download/v21.12/protoc-21.12-osx-x86_64.zip", |
| ) |
| use_repo(gcs_mirror, "protoc_mac_x64") |
| |
| #################################################################################################### |
| # pgadapter. |
| #################################################################################################### |
| http_archive( |
| name = "pgadapter", |
| build_file_content = """ |
| filegroup( |
| name = "all_files", |
| srcs = glob(["**/*"]), |
| visibility = ["//visibility:public"] |
| ) |
| """, |
| sha256 = "2dbb655dddc113eb14659e121839a9d3a5de34544ce88a1dd4dd88c23d436ae3", |
| urls = ["https://storage.googleapis.com/pgadapter-jar-releases/pgadapter-v0.47.1.tar.gz"], |
| ) |
| |
| #################################################################################################### |
| # CockroachDB (used as an "emulator" for tests). |
| #################################################################################################### |
| |
| gcs_mirror.http_archive( |
| name = "cockroachdb_linux", |
| build_file_content = """ |
| filegroup( |
| name = "all_files", |
| srcs = glob(["**/*"]), |
| visibility = ["//visibility:public"] |
| ) |
| """, |
| sha256 = "05293e76dfb6443790117b6c6c05b1152038b49c83bd4345589e15ced8717be3", |
| strip_prefix = "cockroach-v21.1.9.linux-amd64", |
| url = "https://binaries.cockroachdb.com/cockroach-v21.1.9.linux-amd64.tgz", |
| ) |
| use_repo(gcs_mirror, "cockroachdb_linux") |
| |
| #################################################################################################### |
| # bazel-toolchains rbe_configs_gen (prebuilt). |
| #################################################################################################### |
| |
| # Read the instructions in //bazel/rbe/generated/README.md before updating this repository. |
| http_archive( |
| name = "bazel_toolchains", |
| sha256 = "179ec02f809e86abf56356d8898c8bd74069f1bd7c56044050c2cd3d79d0e024", |
| strip_prefix = "bazel-toolchains-4.1.0", |
| urls = [ |
| "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/releases/download/4.1.0/bazel-toolchains-4.1.0.tar.gz", |
| "https://github.com/bazelbuild/bazel-toolchains/releases/download/4.1.0/bazel-toolchains-4.1.0.tar.gz", |
| ], |
| ) |
| |
| rbe_exec_properties = use_extension("//bazel/external:rbe_exec_properties.bzl", "rbe_exec_properties") |
| rbe_exec_properties.setup(name = "exec_properties") |
| use_repo(rbe_exec_properties, "exec_properties") |
| |
| gcs_mirror.http_file( |
| name = "rbe_configs_gen_linux_amd64", |
| downloaded_file_path = "rbe_configs_gen", |
| executable = True, |
| no_extension = True, |
| sha256 = "1206e8a79b41cb22524f73afa4f4ee648478f46ef6990d78e7cc953665a1db89", |
| url = "https://github.com/bazelbuild/bazel-toolchains/releases/download/v5.1.2/rbe_configs_gen_linux_amd64", |
| ) |
| use_repo(gcs_mirror, "rbe_configs_gen_linux_amd64") |
| |
| #################################################################################################### |
| # Google Cloud SDK (needed for the Google Cloud Emulators). |
| #################################################################################################### |
| |
| google_cloud_sdk = use_extension("//bazel/external:google_cloud_sdk.bzl", "google_cloud_sdk") |
| google_cloud_sdk.download(name = "google_cloud_sdk") |
| use_repo(google_cloud_sdk, "google_cloud_sdk") |
| |
| #################################################################################################### |
| # Google Chrome and Fonts (needed for Karma and Puppeteer tests, respectively). |
| #################################################################################################### |
| |
| # TODO(borenet): we should be able to use this from rules_browsers. |
| google_chrome = use_extension("//bazel/external:google_chrome.bzl", "google_chrome") |
| google_chrome.download(name = "google_chrome") |
| use_repo(google_chrome, "google_chrome") |
| |
| #################################################################################################### |
| # Temporal repo, used to package DB schemas into the temporal-server image. |
| #################################################################################################### |
| |
| gcs_mirror.http_archive( |
| name = "com_github_temporal", |
| build_file_content = """ |
| load("@rules_pkg//:pkg.bzl", "pkg_tar") |
| |
| pkg_tar( |
| name = "schemas", |
| srcs = glob([ |
| "schema/postgresql/v96/**/*.sql", |
| "schema/postgresql/v96/**/*.json", |
| ]), |
| strip_prefix = "external/+gcs_mirror+com_github_temporal", |
| package_dir = "/etc/temporal", |
| visibility = ["//visibility:public"], |
| ) |
| """, |
| sha256 = "3110fa0df19de58d6afa9b1af3dd7274a5e37d5082e424c114d7b29c696ceae1", |
| strip_prefix = "./temporal-1.23.1", |
| url = "https://github.com/temporalio/temporal/archive/refs/tags/v1.23.1.tar.gz", |
| ) |
| use_repo(gcs_mirror, "com_github_temporal") |
| |
| gcs_mirror.http_file( |
| name = "swiftshader_libglesv2", |
| downloaded_file_path = "libGLESv2.so", |
| no_extension = True, |
| sha256 = "ad44026cb104b3283c738e7678b3dad5c834f551f47d855200ab3332e83e34a9", |
| url = "https://cdn.skia.org/swiftshader/libGLESv2.so", |
| ) |
| use_repo(gcs_mirror, "swiftshader_libglesv2") |
| |
| gcs_mirror.http_file( |
| name = "swiftshader_libegl", |
| downloaded_file_path = "libEGL.so", |
| no_extension = True, |
| sha256 = "5e0a2b662e532c53a1bd87397704507dfa1d31a53ab9d8ae37de1b9a01498ea6", |
| url = "https://cdn.skia.org/swiftshader/libEGL.so", |
| ) |
| use_repo(gcs_mirror, "swiftshader_libegl") |
| |
| ######### |
| # docsy # |
| ######### |
| |
| docsy = use_extension("//bazel/external/docsy:docsy.bzl", "docsy") |
| use_repo(docsy, "docsy") |
| |
| # Docsy is a Hugo module. |
| http_archive( |
| name = "hugo", |
| build_file_content = """ |
| filegroup( |
| name = "file", |
| srcs = ["hugo"], |
| visibility = ["//visibility:public"] |
| ) |
| """, |
| sha256 = "9f57338fc76f4ac363b0ac35f393294a26522bb179fb4c3f19855a68ab55476a", |
| url = "https://github.com/gohugoio/hugo/releases/download/v0.91.0/hugo_extended_0.91.0_Linux-64bit.tar.gz", |
| ) |