Skip to main content
Glama
deno.bzl4.91 kB
load( "@prelude-si//:artifact.bzl", _artifact_promote = "artifact_promote", _artifact_publish = "artifact_publish", ) load( "@prelude-si//:build_metadata.bzl", _deno_git_metadata_typescript = "deno_git_metadata_typescript", ) load( "@prelude-si//:deno.bzl", _deno_binary = "deno_binary", _deno_binary_artifact = "deno_binary_artifact", _deno_format = "deno_format", _deno_test = "deno_test", ) load( "@prelude-si//macros:native.bzl", _alias = "alias", _test_suite = "test_suite", ) def deno_binary( name, main = "main.ts", deno_json = "deno.json", deno_lock = "deno.lock", git_metadata = True, visibility = ["PUBLIC"], **kwargs): # If Git metadata is enabled, generate and add to extra_srcs if git_metadata: git_metadata_target = "{}-git-metadata-typescript".format(name) _deno_git_metadata_typescript( name = git_metadata_target, git_metadata = "prelude-si//build_metadata:git", visibility = visibility, ) # Add generated file to extra_srcs dict with src/ destination extra_srcs = kwargs.get("extra_srcs", {}) extra_srcs["src/git_metadata.ts"] = ":{}-git-metadata-typescript".format(name) kwargs["extra_srcs"] = extra_srcs _deno_binary( name = name, main = main, deno_json = deno_json, deno_lock = deno_lock, out = kwargs.get("out", name), visibility = visibility, **kwargs ) if not rule_exists("build"): _alias( name = "build", actual = ":{}".format(name), ) def deno_format( visibility = ["PUBLIC"], **kwargs): _deno_format( visibility = visibility, **kwargs ) def deno_test( visibility = ["PUBLIC"], **kwargs): _deno_test( visibility = visibility, **kwargs ) def deno_binary_artifact( name, binary, source_url = "http://github.com/systeminit/si.git", author = "The System Initiative <dev@systeminit.com>", license = "Apache-2.0", artifact_destination = "s3://si-artifacts-prod", artifact_cname = "artifacts.systeminit.com", visibility = ["PUBLIC"]): """Create Deno binary artifact with publish/promote targets for all platforms. Creates base targets: - :{name}-binary-artifact - :publish-{name}-binary-artifact - :promote-{name}-binary-artifact Plus platform-specific aliases for each: - :{name}-binary-artifact-{platform} - :publish-{name}-binary-artifact-{platform} - :promote-{name}-binary-artifact-{platform} Where platform is: linux-x86_64, linux-aarch64, darwin-x86_64, darwin-aarch64, windows-x86_64, windows-aarch64 """ # Base artifact target _deno_binary_artifact( name = "{}-binary-artifact".format(name), binary = binary, binary_name = name, family = name, variant = "binary", author = author, source_url = source_url, license = license, visibility = visibility, ) # Base publish target _artifact_publish( name = "publish-{}-binary-artifact".format(name), artifact = ":{}-binary-artifact".format(name), destination = artifact_destination, cname = artifact_cname, visibility = visibility, ) # Base promote target _artifact_promote( name = "promote-{}-binary-artifact".format(name), family = name, variant = "binary", destination = artifact_destination, cname = artifact_cname, visibility = visibility, ) # Platform-specific aliases platforms = [ "linux-x86_64", "linux-aarch64", "darwin-x86_64", "darwin-aarch64", "windows-x86_64", "windows-aarch64", ] for platform in platforms: # Artifact alias _alias( name = "{}-binary-artifact-{}".format(name, platform), actual = ":{}-binary-artifact".format(name), default_target_platform = "prelude-si//platforms:{}".format(platform), visibility = visibility, ) # Publish alias _alias( name = "publish-{}-binary-artifact-{}".format(name, platform), actual = ":publish-{}-binary-artifact".format(name), default_target_platform = "prelude-si//platforms:{}".format(platform), visibility = visibility, ) # Promote alias _alias( name = "promote-{}-binary-artifact-{}".format(name, platform), actual = ":promote-{}-binary-artifact".format(name), default_target_platform = "prelude-si//platforms:{}".format(platform), visibility = visibility, )

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/systeminit/si'

If you have feedback or need assistance with the MCP directory API, please join our Discord server