databuild/MODULE.bazel

250 lines
6.1 KiB
Python

module(
name = "databuild",
version = "0.1",
)
bazel_dep(name = "bazel_skylib", version = "1.8.2")
bazel_dep(name = "platforms", version = "1.0.0")
bazel_dep(name = "rules_shell", version = "0.6.1")
bazel_dep(name = "rules_oci", version = "2.2.6")
bazel_dep(name = "aspect_bazel_lib", version = "2.14.0")
bazel_dep(name = "rules_rust", version = "0.67.0")
bazel_dep(name = "rules_proto", version = "7.0.2")
bazel_dep(name = "protobuf", version = "29.0", repo_name = "com_google_protobuf")
#rust = use_extension("@rules_rust//rust:extensions.bzl", "rust")
#rust.toolchain(
# edition = "2024",
# versions = ["1.91.1"],
#)
crate = use_extension("@rules_rust//crate_universe:extensions.bzl", "crate")
crate.spec(
features = ["derive"],
package = "serde",
version = "1.0",
)
crate.spec(
package = "serde_json",
version = "1.0",
)
crate.spec(
package = "prost",
version = "0.13",
)
crate.spec(
package = "prost-types",
version = "0.13",
)
crate.spec(
package = "prost-build",
version = "0.13",
)
crate.spec(
package = "tempfile",
version = "3.0",
)
crate.spec(
features = ["v4"],
package = "uuid",
version = "1.0",
)
crate.spec(
package = "sha2",
version = "0.10",
)
crate.spec(
features = ["bundled"],
package = "rusqlite",
version = "0.31",
)
crate.spec(
features = [
"derive",
],
package = "schemars",
version = "0.8.16",
)
crate.spec(
package = "regex",
version = "1.10",
)
crate.spec(
features = ["full"],
package = "tokio",
version = "1.0",
)
crate.spec(
package = "axum",
version = "0.7",
)
crate.spec(
package = "tower",
version = "0.4",
)
crate.spec(
features = ["trace", "cors"],
package = "tower-http",
version = "0.5",
)
crate.spec(
package = "tracing",
version = "0.1",
)
crate.spec(
package = "tracing-subscriber",
version = "0.3",
)
crate.spec(
features = ["derive"],
package = "clap",
version = "4.0",
)
crate.spec(
features = ["blocking", "json"],
package = "reqwest",
version = "0.11",
)
crate.spec(
package = "toml",
version = "0.8",
)
crate.spec(
features = ["urlencode"],
package = "askama",
version = "0.14",
)
crate.spec(
package = "urlencoding",
version = "2.1",
)
crate.spec(
package = "fs2",
version = "0.4",
)
crate.spec(
package = "libc",
version = "0.2",
)
crate.from_specs()
use_repo(crate, "crates")
# TypeScript and Node.js dependencies for dashboard
bazel_dep(name = "aspect_rules_ts", version = "3.6.3")
bazel_dep(name = "aspect_rules_js", version = "2.0.0")
rules_ts_ext = use_extension("@aspect_rules_ts//ts:extensions.bzl", "ext")
rules_ts_ext.deps(ts_version_from = "//databuild/dashboard:package.json")
use_repo(rules_ts_ext, "npm_typescript")
bazel_dep(name = "aspect_rules_esbuild", version = "0.21.0")
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm")
npm.npm_translate_lock(
name = "databuild_npm",
pnpm_lock = "//databuild/dashboard:pnpm-lock.yaml",
# verify_node_modules_ignored = "//:.bazelignore",
)
use_repo(npm, "databuild_npm")
pnpm = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm")
# Allows developers to use the matching pnpm version, for example:
# bazel run -- @pnpm --dir /home/runner/work/rules_js/rules_js install
use_repo(pnpm, "pnpm")
npm.npm_import(
name = "mithril",
package = "mithril",
version = "2.2.2",
)
npm.npm_import(
name = "types_mithril",
package = "@types/mithril",
version = "2.2.7",
)
use_repo(npm, "mithril", "types_mithril")
# Tailwind
http_file = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")
http_file(
name = "tailwind_macos",
executable = True,
sha256 = "8b0e5321ed7de33b8962410fa7e680f568366af8007bb9ebcb89cc68f70653f2",
urls = [
"https://github.com/tailwindlabs/tailwindcss/releases/download/v4.0.0/tailwindcss-macos-arm64",
],
)
http_file(
name = "tailwind_linux",
executable = True,
sha256 = "09c1a5997d68f5e0127d9737593e7dc658fc96dc1851d782a78983d0d6a03c7c",
urls = [
"https://github.com/tailwindlabs/tailwindcss/releases/download/v4.0.0/tailwindcss-linux-x64",
],
)
# Python
bazel_dep(name = "rules_python", version = "1.5.1")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
python_version = "3.12",
)
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "databuild_pypi",
python_version = "3.12",
requirements_lock = "//:requirements_lock.txt",
)
use_repo(pip, "databuild_pypi")
# OCI (Docker images)
oci = use_extension("@rules_oci//oci:extensions.bzl", "oci")
# Declare external images you need to pull
oci.pull(
name = "debian",
image = "docker.io/library/python",
platforms = [
"linux/arm64/v8",
"linux/amd64",
],
# Using a pinned version for reproducibility
tag = "3.12-bookworm",
)
# For each oci.pull call, repeat the "name" here to expose them as dependencies
use_repo(oci, "debian", "debian_linux_amd64", "debian_linux_arm64_v8")
# Ruff
# macOS ARM64 (Apple Silicon)
http_file(
name = "ruff_macos_aarch64",
sha256 = "86b39b4002bb12588af972ad56cfddc1eaa0879c4badb07f0021fae77b5cd958", # Update this
urls = ["https://github.com/astral-sh/ruff/releases/download/0.12.7/ruff-aarch64-apple-darwin.tar.gz"],
)
# macOS x86_64 (Intel)
http_file(
name = "ruff_macos_x86_64",
sha256 = "f0179a587d5509f32ab16bd95cdf64ddcebc80d653e3674161d366312a4eaf7a", # Update this
urls = ["https://github.com/astral-sh/ruff/releases/download/0.12.7/ruff-x86_64-apple-darwin.tar.gz"],
)
# Linux x86_64
http_file(
name = "ruff_linux_x86_64",
sha256 = "65b1ec7ba8feda6cbe52aec168f32e5c276577065914fca922b9a8b3f42db433", # Update this
urls = ["https://github.com/astral-sh/ruff/releases/download/0.12.7/ruff-x86_64-unknown-linux-gnu.tar.gz"],
)
# Linux ARM64
http_file(
name = "ruff_linux_aarch64",
sha256 = "0d4bb492a02cf191a2e1e058cf819c2ed86c05ea444de5e3895ba75c890a9804", # Update this
urls = ["https://github.com/astral-sh/ruff/releases/download/0.12.7/ruff-aarch64-unknown-linux-gnu.tar.gz"],
)