hyperboria/nexus/meta_api/BUILD.bazel

105 lines
2.3 KiB
Python
Raw Normal View History

load("@io_bazel_rules_docker//python:image.bzl", "py_layer")
load("@io_bazel_rules_docker//python3:image.bzl", "py3_image")
load("@io_bazel_rules_docker//container:container.bzl", "container_push")
load("@pip_modules//:requirements.bzl", "requirement")
alias(
name = "binary",
actual = ":image.binary",
visibility = ["//visibility:public"],
)
DEPS = [
requirement("aiochclient"),
requirement("aiohttp"),
requirement("aiosumma"),
requirement("cachetools"),
requirement("en_core_web_sm"),
requirement("grpcio"),
requirement("lightgbm"),
requirement("numpy"),
requirement("protobuf"),
requirement("recordclass"),
requirement("uvloop"),
"//library/aiogrpctools",
requirement("aiokit"),
"//library/aiopostgres",
"//library/configurator",
"//library/logging",
"//nexus/meta_api/proto:grpc_py",
"//nexus/models/proto:proto_py",
"//nexus/views/telegram",
requirement("izihawa_nlptools"),
]
py_layer(
name = "common_deps",
filter = "//pkg/common",
deps = DEPS,
)
py_layer(
name = "common_external_deps",
filter = "@",
deps = [":common_deps"],
)
py_layer(
name = "external_deps",
filter = "@",
deps = DEPS,
)
py3_image(
name = "image",
srcs = glob(
["**/*.py"],
exclude = ["proto/**/*.py"],
),
base = "//images/production:base-python-image",
data = [
"configs/base.yaml",
"configs/logging.yaml",
"models/classic.txt",
],
layers = [
":common_external_deps",
":common_deps",
":external_deps",
],
main = "main.py",
srcs_version = "PY3ONLY",
visibility = ["//visibility:public"],
deps = DEPS,
)
py_binary(
name = "cli",
srcs = ["cli.py"],
main = "cli.py",
deps = [
requirement("fire"),
"//nexus/meta_api/aioclient",
],
)
container_push(
name = "push-public-latest",
format = "Docker",
image = ":image",
registry = "registry.hub.docker.com",
repository = "thesuperpirate/nexus-meta-api",
tag = "latest",
)
container_push(
name = "push-public-testing",
format = "Docker",
image = ":image",
registry = "registry.hub.docker.com",
repository = "thesuperpirate/nexus-meta-api",
tag = "testing",
)