Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 32 additions & 14 deletions misc/bazel/pkg.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ Wrappers and helpers around `rules_pkg` to build codeql packs.
"""

load("@bazel_skylib//lib:paths.bzl", "paths")
load("@bazel_skylib//rules:native_binary.bzl", "native_test")
load("@rules_pkg//pkg:install.bzl", "pkg_install")
load("@rules_pkg//pkg:mappings.bzl", "pkg_attributes", "pkg_filegroup", "pkg_files", _strip_prefix = "strip_prefix")
load("@rules_pkg//pkg:pkg.bzl", "pkg_zip")
Expand Down Expand Up @@ -351,25 +352,42 @@ def _codeql_pack_install(name, srcs, install_dest = None, build_file_label = Non
visibility = ["//visibility:private"],
)
build_file_label = internal("build-file")

data = [
internal("script"),
internal("zip-manifest"),
Label("//misc/ripunzip"),
] + ([build_file_label] if build_file_label else [])
args = [
"--pkg-install-script=$(rlocationpath %s)" % internal("script"),
"--ripunzip=$(rlocationpath %s)" % Label("//misc/ripunzip"),
"--zip-manifest=$(rlocationpath %s)" % internal("zip-manifest"),
] + ([
"--build-file=$(rlocationpath %s)" % build_file_label,
] if build_file_label else []) + (
["--destdir", "\"%s\"" % install_dest] if install_dest else []
)
py_binary(
name = name,
srcs = [Label("//misc/bazel/internal:install.py")],
main = Label("//misc/bazel/internal:install.py"),
data = [
internal("script"),
internal("zip-manifest"),
Label("//misc/ripunzip"),
] + ([build_file_label] if build_file_label else []),
deps = ["@rules_python//python/runfiles"],
args = [
"--pkg-install-script=$(rlocationpath %s)" % internal("script"),
"--ripunzip=$(rlocationpath %s)" % Label("//misc/ripunzip"),
"--zip-manifest=$(rlocationpath %s)" % internal("zip-manifest"),
] + ([
"--build-file=$(rlocationpath %s)" % build_file_label,
] if build_file_label else []) +
(["--destdir", "\"%s\"" % install_dest] if install_dest else []),
data = data,
args = args,
)

# this hack is meant to be an optimization when using install for tests, where
# the install step is skipped if nothing changed. If the installation directory
# is somehow messed up, `bazel run` can be used to force install
native_test(
name = internal("as", "test"),
src = name,
tags = [
"manual", # avoid having this picked up by `...`, `:all` or `:*`
"local", # make sure installation does not run sandboxed
],
data = data,
args = args,
size = "small",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the timeout only covers the install part, right? Which under all circumstances ought to finish in 60 seconds, so this is appropriate.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

indeed!

)

def codeql_pack_group(name, srcs, visibility = None, skip_installer = False, prefix = "", install_dest = None, build_file_label = None, compression_level = 6):
Expand Down
Loading