diff --git a/go/BUILD.bazel b/go/BUILD.bazel index 4fb73a51fb6..2c5c2d6d89a 100644 --- a/go/BUILD.bazel +++ b/go/BUILD.bazel @@ -1,7 +1,6 @@ load("@bazel_skylib//rules:native_binary.bzl", "native_binary") -load("@rules_pkg//pkg:install.bzl", "pkg_install") -load("@rules_pkg//pkg:mappings.bzl", "pkg_attributes", "pkg_filegroup", "pkg_files") -load("//:defs.bzl", "codeql_platform") +load("@rules_pkg//pkg:mappings.bzl", "pkg_files") +load("//misc/bazel:pkg.bzl", "codeql_pack", "codeql_pkg_files") native_binary( name = "gazelle", @@ -44,20 +43,9 @@ pkg_files( ], ) -pkg_filegroup( - name = "extractor-pack-generic", - srcs = [ - ":resources", - "//go/codeql-tools", - "//go/downgrades", - "//go/extractor:tokenizer", - ], - visibility = ["//visibility:public"], -) - -pkg_files( +codeql_pkg_files( name = "extractor-pack-arch", - srcs = [ + exes = [ "//go/extractor/cli/go-autobuilder", "//go/extractor/cli/go-bootstrap", "//go/extractor/cli/go-build-runner", @@ -65,29 +53,17 @@ pkg_files( "//go/extractor/cli/go-gen-dbscheme", "//go/extractor/cli/go-tokenizer", ], - attributes = pkg_attributes(mode = "0755"), - prefix = "tools/" + codeql_platform, - visibility = ["//visibility:public"], + prefix = "tools/{CODEQL_PLATFORM}", ) -pkg_filegroup( - name = "extractor-pack", +codeql_pack( + name = "go", srcs = [ ":extractor-pack-arch", - ":extractor-pack-generic", + ":resources", + "//go/codeql-tools", + "//go/downgrades", + "//go/extractor:tokenizer", ], - visibility = ["//visibility:public"], -) - -pkg_install( - name = "_extractor_pack", - srcs = [":extractor-pack"], -) - -py_binary( - name = "create-extractor-pack", - srcs = ["create_extractor_pack.py"], - env = {"REPO_NAME": repo_name()}, - main = "create_extractor_pack.py", - deps = ["_extractor_pack"], + install_dest = "build/codeql-extractor-pack", ) diff --git a/go/Makefile b/go/Makefile index 3ebeb69fcaf..f4709cb7ef4 100644 --- a/go/Makefile +++ b/go/Makefile @@ -28,7 +28,7 @@ qhelp-to-markdown: scripts/qhelp-to-markdown.sh ql/src "$(QHELP_OUT_DIR)" extractor: - bazel run :create-extractor-pack + bazel run :go-installer gen: bazel run :gen diff --git a/go/actions/test/action.yml b/go/actions/test/action.yml index 7648d2ea2e8..cc92ede59b9 100644 --- a/go/actions/test/action.yml +++ b/go/actions/test/action.yml @@ -40,7 +40,7 @@ runs: - name: Build shell: bash run: | - bazel run go:create-extractor-pack + bazel run go:go-installer - name: Check that all Go code is autoformatted if: inputs.run-code-checks == 'true' && !cancelled() diff --git a/go/codeql-tools/BUILD.bazel b/go/codeql-tools/BUILD.bazel index 8c3946b24ad..fa32d521fab 100644 --- a/go/codeql-tools/BUILD.bazel +++ b/go/codeql-tools/BUILD.bazel @@ -1,13 +1,7 @@ -load("@rules_pkg//pkg:mappings.bzl", "pkg_attributes", "pkg_filegroup", "pkg_files") +load("//misc/bazel:pkg.bzl", "codeql_pkg_files") -pkg_files( - name = "sh-files", - srcs = glob(["*.sh"]), - attributes = pkg_attributes(mode = "0755"), -) - -pkg_files( - name = "non-sh-files", +codeql_pkg_files( + name = "codeql-tools", srcs = glob( ["*"], exclude = [ @@ -15,14 +9,7 @@ pkg_files( "BUILD.bazel", ], ), -) - -pkg_filegroup( - name = "codeql-tools", - srcs = [ - ":non-sh-files", - ":sh-files", - ], + exes = glob(["*.sh"]), prefix = "tools", visibility = ["//go:__pkg__"], ) diff --git a/go/create_extractor_pack.py b/go/create_extractor_pack.py deleted file mode 100755 index 427f0c37c36..00000000000 --- a/go/create_extractor_pack.py +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env python3 -import os -import pathlib -import shutil -import sys -import subprocess - -try: - workspace_dir = pathlib.Path(os.environ['BUILD_WORKSPACE_DIRECTORY']) -except KeyError: - res = subprocess.run(["bazel", "run", ":create-extractor-pack"], cwd=pathlib.Path(__file__).parent) - sys.exit(res.returncode) - -from go._extractor_pack_install_script import main - -build_dir = workspace_dir / 'go' / 'build' - -if not build_dir.exists(): - # we probably are in the internal repo - workspace_dir /= 'ql' - build_dir = workspace_dir / 'go' / 'build' - -dest_dir = build_dir / 'codeql-extractor-pack' -shutil.rmtree(dest_dir, ignore_errors=True) -os.environ['DESTDIR'] = str(dest_dir) -main(sys.argv)