|
| 1 | +# Define the workspace base name and a managed directory by bazel |
| 2 | +# that will hold the node_modules called @npm |
1 | 3 | workspace(
|
2 |
| - name = "kibana", |
| 4 | + name = "kibana", |
| 5 | + managed_directories = {"@npm": ["node_modules"]}, |
| 6 | +) |
| 7 | + |
| 8 | +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") |
| 9 | + |
| 10 | +# Fetch Node.js rules |
| 11 | +http_archive( |
| 12 | + name = "build_bazel_rules_nodejs", |
| 13 | + sha256 = "bfacf15161d96a6a39510e7b3d3b522cf61cb8b82a31e79400a84c5abcab5347", |
| 14 | + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.1/rules_nodejs-3.2.1.tar.gz"], |
| 15 | +) |
| 16 | + |
| 17 | +# Now that we have the rules let's import from them to complete the work |
| 18 | +load("@build_bazel_rules_nodejs//:index.bzl", "check_rules_nodejs_version", "node_repositories", "yarn_install") |
| 19 | + |
| 20 | +# Assure we have at least a given rules_nodejs version |
| 21 | +check_rules_nodejs_version(minimum_version_string = "3.2.1") |
| 22 | + |
| 23 | +# Setup the Node.js toolchain for the architectures we want to support |
| 24 | +# |
| 25 | +# NOTE: darwin-arm64 is not being installed because bazel is not yet available on that architecture. |
| 26 | +# The PR for it was merged and should be available in the next release of bazel and bazelisk. As soon as they have it |
| 27 | +# we can update that rule. |
| 28 | +node_repositories( |
| 29 | + node_repositories = { |
| 30 | + "14.16.0-darwin_amd64": ("node-v14.16.0-darwin-x64.tar.gz", "node-v14.16.0-darwin-x64", "14ec767e376d1e2e668f997065926c5c0086ec46516d1d45918af8ae05bd4583"), |
| 31 | + "14.16.0-linux_arm64": ("node-v14.16.0-linux-arm64.tar.xz", "node-v14.16.0-linux-arm64", "440489a08bfd020e814c9e65017f58d692299ac3f150c8e78d01abb1104c878a"), |
| 32 | + "14.16.0-linux_s390x": ("node-v14.16.0-linux-s390x.tar.xz", "node-v14.16.0-linux-s390x", "335348e46f45284b6356416ef58f85602d2dee99094588b65900f6c8839df77e"), |
| 33 | + "14.16.0-linux_amd64": ("node-v14.16.0-linux-x64.tar.xz", "node-v14.16.0-linux-x64", "2e079cf638766fedd720d30ec8ffef5d6ceada4e8b441fc2a093cb9a865f4087"), |
| 34 | + "14.16.0-windows_amd64": ("node-v14.16.0-win-x64.zip", "node-v14.16.0-win-x64", "716045c2f16ea10ca97bd04cf2e5ef865f9c4d6d677a9bc25e2ea522b594af4f"), |
| 35 | + }, |
| 36 | + node_version = "14.16.0", |
| 37 | + node_urls = [ |
| 38 | + "https://nodejs.org/dist/v{version}/{filename}", |
| 39 | + ], |
| 40 | + yarn_repositories = { |
| 41 | + "1.21.1": ("yarn-v1.21.1.tar.gz", "yarn-v1.21.1", "d1d9f4a0f16f5ed484e814afeb98f39b82d4728c6c8beaafb5abc99c02db6674"), |
| 42 | + }, |
| 43 | + yarn_version = "1.21.1", |
| 44 | + yarn_urls = [ |
| 45 | + "https://github.com/yarnpkg/yarn/releases/download/v{version}/{filename}", |
| 46 | + ], |
| 47 | + package_json = ["//:package.json"], |
| 48 | +) |
| 49 | + |
| 50 | +# Run yarn_install rule to take care of dependencies |
| 51 | +# |
| 52 | +# NOTE: FORCE_COLOR env var forces colors on non tty mode |
| 53 | +yarn_install( |
| 54 | + name = "npm", |
| 55 | + environment = { |
| 56 | + "FORCE_COLOR": "True", |
| 57 | + }, |
| 58 | + package_json = "//:package.json", |
| 59 | + yarn_lock = "//:yarn.lock", |
| 60 | + data = [ |
| 61 | + "//:.yarnrc", |
| 62 | + "//:preinstall_check.js", |
| 63 | + "//:node_modules/.yarn-integrity", |
| 64 | + ], |
| 65 | + symlink_node_modules = True, |
| 66 | + quiet = False, |
| 67 | + frozen_lockfile = False, |
3 | 68 | )
|
0 commit comments