瀏覽代碼

Update bazel and agent files

Breandan Dezendorf 10 小時之前
父節點
當前提交
658bbd07eb
共有 6 個文件被更改,包括 171 次插入1 次删除
  1. 2 0
      .bazelrc
  2. 1 0
      .bazelversion
  3. 6 0
      AGENTS.md
  4. 3 0
      MODULE.bazel
  5. 158 0
      WORKSPACE
  6. 1 1
      third_party/terraform/BUILD

+ 2 - 0
.bazelrc

@@ -0,0 +1,2 @@
+common --enable_bzlmod
+common --enable_workspace

+ 1 - 0
.bazelversion

@@ -0,0 +1 @@
+7.4.1

+ 6 - 0
AGENTS.md

@@ -10,6 +10,12 @@
 - If no focused issue is active, pick one with `td next` and begin with `td start <id>`.
 - Log meaningful progress using `td log "<message>"`.
 
+### New feature workspace (mandatory)
+- When starting a new feature, start a fresh td workspace first.
+- Use `tools/bin/td-feature-start "<feature-name>" <id...>`.
+- If issue IDs are omitted, it tags the currently focused issue when available.
+- Do not begin new-feature implementation outside a td workspace.
+
 ### Required completion flow
 - Before stopping work, capture current state with `td handoff <id>`.
 - Submit finished work with `td review <id>`.

+ 3 - 0
MODULE.bazel

@@ -0,0 +1,3 @@
+module(
+    name = "monorepo",
+)

+ 158 - 0
WORKSPACE

@@ -0,0 +1,158 @@
+workspace(name = "monorepo")
+
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+
+http_archive(
+    name = "io_bazel_rules_go",
+    sha256 = "56d8c5a5c91e1af73eca71a6fab2ced959b67c86d12ba37feedb0a2dfea441a6",
+    urls = [
+        "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.37.0/rules_go-v0.37.0.zip",
+        "https://github.com/bazelbuild/rules_go/releases/download/v0.37.0/rules_go-v0.37.0.zip",
+    ],
+)
+
+http_archive(
+    name = "bazel_gazelle",
+    sha256 = "ecba0f04f96b4960a5b250c8e8eeec42281035970aa8852dda73098274d14a1d",
+    urls = [
+        "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
+        "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
+    ],
+)
+
+http_archive(
+    name = "argocd",
+    sha256 = "924dbe072ae142a30b04e57285e46ba9c0a9acaad72357cd9c83f48c2fbf825e",
+    urls = [
+        "https://github.com/argoproj/argo-cd/releases/download/v2.5.9/argocd-linux-amd64",
+    ],
+)
+
+http_archive(
+    name = "io_bazel_rules_docker",
+    sha256 = "b1e80761a8a8243d03ebca8845e9cc1ba6c82ce7c5179ce2b295cd36f7e394bf",
+    urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.25.0/rules_docker-v0.25.0.tar.gz"],
+)
+
+load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
+load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")
+
+go_register_toolchains(version = "1.19.5")
+
+
+############################################################
+# Define your own dependencies here using go_repository.
+# Else, dependencies declared by rules_go/gazelle will be used.
+# The first declaration of an external repository "wins".
+############################################################
+
+load(
+    "@io_bazel_rules_docker//repositories:repositories.bzl",
+    container_repositories = "repositories",
+)
+container_repositories()
+
+load(
+    "@io_bazel_rules_docker//repositories:go_repositories.bzl",
+    container_go_deps = "go_deps",
+)
+
+container_go_deps()
+
+load("@io_bazel_rules_docker//container:pull.bzl", "container_pull")
+load("@io_bazel_rules_docker//contrib:dockerfile_build.bzl", "dockerfile_image")
+load("@io_bazel_rules_docker//java:image.bzl", _java_image_repos = "repositories")
+
+load("@io_bazel_rules_docker//repositories:deps.bzl", container_deps = "deps")
+
+
+load(
+    "@io_bazel_rules_docker//go:image.bzl",
+    _go_image_repos = "repositories",
+)
+
+container_deps()
+
+_go_image_repos()
+
+load(
+    "@io_bazel_rules_docker//container:container.bzl", "container_pull",
+)
+
+container_pull(
+  name = "java_base",
+  registry = "gcr.io",
+  repository = "distroless/java",
+  # 'tag' is also supported, but digest is encouraged for reproducibility.
+  digest = "sha256:deadbeef",
+)
+
+go_repository(
+    name = "com_github_julienschmidt_httprouter",
+    importpath = "github.com/julienschmidt/httprouter",
+    sum = "h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U=",
+    version = "v1.3.0",
+)
+
+go_repository(
+    name = "io_gorm_gorm",
+    importpath = "gorm.io/gorm",
+    sum = "h1:wy98aq9oFEetsc4CAbKD2SoBCdMzsbSIvSUUFJuHi5s=",
+    version = "v1.24.6",
+)
+
+go_repository(
+    name = "io_gorm_driver_mysql",
+    importpath = "gorm.io/driver/mysql",
+    sum = "h1:rY46lkCspzGHn7+IYsNpSfEv9tA+SU4SkkB+GFX125Y=",
+    version = "v1.4.7",
+)
+
+go_repository(
+    name = "io_gorm_driver_sqlite",
+    importpath = "gorm.io/driver/sqlite",
+    sum = "h1:gIufGoR0dQzjkyqDyYSCvsYR6fba1Gw5YKDqKeChxFc=",
+    version = "v1.4.4",
+)
+
+go_rules_dependencies()
+
+#go_register_toolchains(version = "1.19.5")
+
+gazelle_dependencies()
+
+#go_repository(
+#    name = "com_github_julienschmidt_httprouter",
+#    importpath = "github.com/julienschmidt/httprouter"
+#)
+
+http_archive(
+    name = "com_plezentek_rules_sqlc",
+    sha256 = "ac0c69ad3f3f49a2f5c068a7ac946a52ce0d8389927f279eff2dca00f2631df1",
+    urls = [
+        "https://github.com/plezentek/rules_sqlc/releases/download/v0.9.1/rules_sqlc-v0.9.1.tar.gz"
+    ],
+)
+
+load("@com_plezentek_rules_sqlc//sqlc:deps.bzl", "sqlc_register_toolchains", "sqlc_rules_dependencies")
+
+sqlc_rules_dependencies()
+
+sqlc_register_toolchains()
+
+http_archive(
+  name = "rules_python",
+  sha256 = "84aec9e21cc56fbc7f1335035a71c850d1b9b5cc6ff497306f84cced9a769841",
+  strip_prefix = "rules_python-0.23.1",
+  url = "https://github.com/bazelbuild/rules_python/releases/download/0.23.1/rules_python-0.23.1.tar.gz",
+)
+
+load("@rules_python//python:repositories.bzl", "py_repositories")
+py_repositories()
+
+load("@rules_python//python:pip.bzl", "pip_install")
+
+pip_install(
+   name = "python_deps",
+   requirements = "//third_party:requirements.txt",
+)

+ 1 - 1
third_party/terraform/BUILD

@@ -7,7 +7,7 @@ alias(
 	actual = select({
 		"//conditions:default": "@com_hashicorp_terraform_linux_amd64//:copy_terraform",
 	}),
-	visibilty = ["//visibility:public"],
+	visibility = ["//visibility:public"],
 )
 
 exports_files([