diff --git a/BUILD b/BUILD index cd42323900..a97cb56d09 100644 --- a/BUILD +++ b/BUILD @@ -1,31 +1,39 @@ load("@buildifier_prebuilt//:rules.bzl", "buildifier") +load("@rules_pkg//pkg:tar.bzl", "pkg_tar") # Release -# TODO: Use rules_pkg -genrule( +filegroup( name = "release", - srcs = [":release_files"], - outs = [ - "release.tar.gz", - "release.tar.gz.sha256", + srcs = [ + ":release_pkg", + ":release_pkg_sha256", ], +) + +genrule( + name = "release_pkg_sha256", + srcs = [":release_pkg"], + outs = ["release.tar.gz.sha256"], cmd = """\ set -euo pipefail -outs=($(OUTS)) - -COPYFILE_DISABLE=1 tar czvfh "$${outs[0]}" \ - --exclude .DS_Store \ - --exclude **/*.xcodeproj \ - --exclude ^bazel-out/ \ - --exclude ^external/ \ - * -shasum -a 256 "$${outs[0]}" > "$${outs[1]}" +shasum -a 256 $< > $@ """, tags = ["manual"], ) +pkg_tar( + name = "release_pkg", + srcs = [":release_files"], + extension = "tar.gz", + mode = "0444", + owner = "0.0", + package_file_name = "release.tar.gz", + strip_prefix = ".", + tags = ["manual"], +) + filegroup( name = "release_files", srcs = [ diff --git a/MODULE.bazel b/MODULE.bazel index 8aa2860647..47bc78abf9 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -21,6 +21,11 @@ bazel_dep( version = "6.0.0.1", dev_dependency = True, ) +bazel_dep( + name = "rules_pkg", + version = "0.7.0", + dev_dependency = True, +) non_module_deps = use_extension("//xcodeproj:extensions.bzl", "non_module_deps") use_repo( diff --git a/WORKSPACE b/WORKSPACE index a1911ab25f..fc01dc3240 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -76,3 +76,18 @@ http_archive( load("@io_bazel_stardoc//:setup.bzl", "stardoc_repositories") stardoc_repositories() + +# rules_pkg + +http_archive( + name = "rules_pkg", + sha256 = "451e08a4d78988c06fa3f9306ec813b836b1d076d0f055595444ba4ff22b867f", + urls = [ + "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.7.1/rules_pkg-0.7.1.tar.gz", + "https://github.com/bazelbuild/rules_pkg/releases/download/0.7.1/rules_pkg-0.7.1.tar.gz", + ], +) + +load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies") + +rules_pkg_dependencies()