From c6b33fd407069d4eadf20de6184fcbe35a59aba4 Mon Sep 17 00:00:00 2001 From: Louis Dureuil Date: Thu, 18 Jul 2024 17:28:01 +0200 Subject: [PATCH] Allow `MEILI_NO_VERGEN` env var to skip vergen --- CONTRIBUTING.md | 4 ++++ build-info/build.rs | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3e11e2f19..092eb10e9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -62,6 +62,10 @@ We recommend using the standard `$HOME/.cache/lindera` directory: export LINDERA_CACHE=$HOME/.cache/lindera ``` +Furthermore, you can improve incremental compilation by setting the `MEILI_NO_VERGEN` environment variable. +Setting this variable will prevent the Meilisearch binary from being rebuilt each time the directory that hosts the Meilisearch repository changes. +Do not enable this environment variable for production builds (as it will break the `version` route, among other things). + #### Snapshot-based tests We are using [insta](https://insta.rs) to perform snapshot-based testing. diff --git a/build-info/build.rs b/build-info/build.rs index b1ec0ab47..8fbca603b 100644 --- a/build-info/build.rs +++ b/build-info/build.rs @@ -5,6 +5,13 @@ fn main() { } fn emit_git_variables() -> anyhow::Result<()> { + println!("cargo::rerun-if-env-changed=MEILI_NO_VERGEN"); + + let has_vergen = + !matches!(std::env::var_os("MEILI_NO_VERGEN"), Some(x) if x != "false" && x != "0"); + + anyhow::ensure!(has_vergen, "disabled via `MEILI_NO_VERGEN`"); + // Note: any code that needs VERGEN_ environment variables should take care to define them manually in the Dockerfile and pass them // in the corresponding GitHub workflow (publish_docker.yml). // This is due to the Dockerfile building the binary outside of the git directory.