mirror of
https://github.com/renovatebot/renovate.git
synced 2026-10-31 09:41:46 +00:00
4d2d86f902
* fix(bazel-module,bazelisk): add `allowedUnsafeExecutions` for `bazel mod deps` * docs: update manager readmes
112 lines
3.1 KiB
Markdown
112 lines
3.1 KiB
Markdown
The `bazel-module` manager can update [Bazel module (bzlmod)](https://bazel.build/external/module) enabled workspaces.
|
|
|
|
### Maven
|
|
|
|
It also takes care about maven artifacts initalized with [bzlmod](https://github.com/bazelbuild/rules_jvm_external/blob/master/docs/bzlmod.md). For simplicity the name of extension variable is limited to `maven*`. E.g.:
|
|
|
|
```
|
|
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
|
|
```
|
|
|
|
```
|
|
maven_1 = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
|
|
```
|
|
|
|
Both `install` and `artifact` methods are supported:
|
|
|
|
```
|
|
maven.install(
|
|
artifacts = [
|
|
"org.seleniumhq.selenium:selenium-java:4.4.0",
|
|
],
|
|
)
|
|
|
|
maven.artifact(
|
|
artifact = "javapoet",
|
|
group = "com.squareup",
|
|
neverlink = True,
|
|
version = "1.11.1",
|
|
)
|
|
```
|
|
|
|
### Docker
|
|
|
|
Similarly, it updates Docker / OCI images pulled with [oci_pull](https://github.com/bazel-contrib/rules_oci/blob/main/docs/pull.md).
|
|
|
|
Note that the extension must be called `oci`:
|
|
|
|
```
|
|
oci = use_extension("@rules_oci//oci:extensions.bzl", "oci")
|
|
|
|
oci.pull(
|
|
name = "nginx_image",
|
|
digest = "sha256:287ff321f9e3cde74b600cc26197424404157a72043226cbbf07ee8304a2c720",
|
|
image = "index.docker.io/library/nginx",
|
|
platforms = ["linux/amd64"],
|
|
tag = "1.27.1",
|
|
)
|
|
```
|
|
|
|
It also supports Docker images pulled with [rules_img pull](https://github.com/tweag/rules_img/blob/main/docs/pull.md#pull):
|
|
|
|
```
|
|
pull = use_repo_rule("@rules_img//img:pull.bzl", "pull")
|
|
pull(
|
|
name = "ubuntu",
|
|
digest = "sha256:1e622c5f9ac0c0144d577702ba5f2cce79fc8e3cf89ec88291739cd4eee3b7b9",
|
|
registry = "index.docker.io",
|
|
repository = "library/ubuntu",
|
|
tag = "24.04",
|
|
)
|
|
```
|
|
|
|
### Crate
|
|
|
|
It also supports Rust crate dependencies initialized with [rules_rust crate_universe](https://github.com/bazelbuild/rules_rust/tree/main/crate_universe). For simplicity the name of extension variable is limited to `crate*`. E.g.:
|
|
|
|
```starlark
|
|
crate = use_extension("@rules_rust//crate_universe:extension.bzl", "crate")
|
|
```
|
|
|
|
```starlark
|
|
crate_1 = use_extension("@rules_rust//crate_universe:extension.bzl", "crate")
|
|
```
|
|
|
|
The `spec` method is supported:
|
|
|
|
```starlark
|
|
crate.spec(
|
|
package = "axum",
|
|
version = "0.8.4",
|
|
)
|
|
|
|
crate.spec(
|
|
package = "tokio",
|
|
version = "1.45.1",
|
|
features = [
|
|
"full",
|
|
],
|
|
)
|
|
|
|
crate.spec(
|
|
package = "custom_crate",
|
|
git = "https://github.com/example/custom_crate.git",
|
|
tag = "v1.0.0",
|
|
)
|
|
```
|
|
|
|
### Lockfile support
|
|
|
|
The `bazel-module` manager updates the `MODULE.bazel.lock` file when dependencies change.
|
|
After updating `MODULE.bazel`, Renovate runs `bazel mod deps` to regenerate the lockfile.
|
|
|
|
Requirements:
|
|
|
|
- A `MODULE.bazel.lock` file must already exist in the repository
|
|
- [Bazelisk](https://github.com/bazelbuild/bazelisk) must be available (Renovate installs it automatically when using containerbase)
|
|
- Bazelisk determines the correct Bazel version from the `.bazelversion` file in the repository (if present)
|
|
|
|
If no `MODULE.bazel.lock` file is found, the lockfile update step is skipped.
|
|
|
|
It will only run if the [`allowedUnsafeExecutions`](../../../self-hosted-configuration.md#allowedunsafeexecutions) global option includes `bazelModDeps`.
|