Go: Move to new packaging rules.

This commit is contained in:
Cornelius Riemenschneider
2024-05-30 11:10:25 +02:00
parent d66d7d8a3a
commit dcd44859f5
5 changed files with 18 additions and 81 deletions

View File

@@ -1,7 +1,6 @@
load("@bazel_skylib//rules:native_binary.bzl", "native_binary") load("@bazel_skylib//rules:native_binary.bzl", "native_binary")
load("@rules_pkg//pkg:install.bzl", "pkg_install") load("@rules_pkg//pkg:mappings.bzl", "pkg_files")
load("@rules_pkg//pkg:mappings.bzl", "pkg_attributes", "pkg_filegroup", "pkg_files") load("//misc/bazel:pkg.bzl", "codeql_pack", "codeql_pkg_files")
load("//:defs.bzl", "codeql_platform")
native_binary( native_binary(
name = "gazelle", name = "gazelle",
@@ -44,20 +43,9 @@ pkg_files(
], ],
) )
pkg_filegroup( codeql_pkg_files(
name = "extractor-pack-generic",
srcs = [
":resources",
"//go/codeql-tools",
"//go/downgrades",
"//go/extractor:tokenizer",
],
visibility = ["//visibility:public"],
)
pkg_files(
name = "extractor-pack-arch", name = "extractor-pack-arch",
srcs = [ exes = [
"//go/extractor/cli/go-autobuilder", "//go/extractor/cli/go-autobuilder",
"//go/extractor/cli/go-bootstrap", "//go/extractor/cli/go-bootstrap",
"//go/extractor/cli/go-build-runner", "//go/extractor/cli/go-build-runner",
@@ -65,29 +53,17 @@ pkg_files(
"//go/extractor/cli/go-gen-dbscheme", "//go/extractor/cli/go-gen-dbscheme",
"//go/extractor/cli/go-tokenizer", "//go/extractor/cli/go-tokenizer",
], ],
attributes = pkg_attributes(mode = "0755"), prefix = "tools/{CODEQL_PLATFORM}",
prefix = "tools/" + codeql_platform,
visibility = ["//visibility:public"],
) )
pkg_filegroup( codeql_pack(
name = "extractor-pack", name = "go",
srcs = [ srcs = [
":extractor-pack-arch", ":extractor-pack-arch",
":extractor-pack-generic", ":resources",
"//go/codeql-tools",
"//go/downgrades",
"//go/extractor:tokenizer",
], ],
visibility = ["//visibility:public"], install_dest = "build/codeql-extractor-pack",
)
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"],
) )

View File

@@ -28,7 +28,7 @@ qhelp-to-markdown:
scripts/qhelp-to-markdown.sh ql/src "$(QHELP_OUT_DIR)" scripts/qhelp-to-markdown.sh ql/src "$(QHELP_OUT_DIR)"
extractor: extractor:
bazel run :create-extractor-pack bazel run :go-installer
gen: gen:
bazel run :gen bazel run :gen

View File

@@ -40,7 +40,7 @@ runs:
- name: Build - name: Build
shell: bash shell: bash
run: | run: |
bazel run go:create-extractor-pack bazel run go:go-installer
- name: Check that all Go code is autoformatted - name: Check that all Go code is autoformatted
if: inputs.run-code-checks == 'true' && !cancelled() if: inputs.run-code-checks == 'true' && !cancelled()

View File

@@ -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( codeql_pkg_files(
name = "sh-files", name = "codeql-tools",
srcs = glob(["*.sh"]),
attributes = pkg_attributes(mode = "0755"),
)
pkg_files(
name = "non-sh-files",
srcs = glob( srcs = glob(
["*"], ["*"],
exclude = [ exclude = [
@@ -15,14 +9,7 @@ pkg_files(
"BUILD.bazel", "BUILD.bazel",
], ],
), ),
) exes = glob(["*.sh"]),
pkg_filegroup(
name = "codeql-tools",
srcs = [
":non-sh-files",
":sh-files",
],
prefix = "tools", prefix = "tools",
visibility = ["//go:__pkg__"], visibility = ["//go:__pkg__"],
) )

View File

@@ -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)