From 64c47585356db8beddc67b200c3d53294244f641 Mon Sep 17 00:00:00 2001 From: Jon Date: Tue, 22 Oct 2024 07:56:08 -0500 Subject: [PATCH] [ci] Cache chromedriver (#196614) Chromedriver is currently downloaded at runtime on each agent. We know the expected version of Chrome at image build time, and can re-use the matching driver already installed instead. This sets `XDG_CACHE_HOME` to `$HOME/.cache` to persist the chromedriver installation. Details on the specification can be found at https://specifications.freedesktop.org/basedir-spec/latest/. Other packages, including cypress, playwright, bazelisk and yarn also respect this environment variable, but are already falling back to the `$HOME/.cache` directory. This also removes `CHROMEDRIVER_FORCE_DOWNLOAD`, which I believe is an artifact of legacy code: https://github.com/elastic/kibana/blob/6.7/.ci/packer_cache.sh#L17-L26. At one point node_modules was initially loaded from an archive to speed up bootstrap times. The intent was to redownload chromedriver because the Chrome version on the agent image was upgraded independently of the bootstrap cache, potentially causing version mismatches. The impact of re-downloading was also less significant, as there was less parallelization in favor of large machines running parallel jobs. (cherry picked from commit b89941f3ab072135cc3c343f083e2669831ea4af) --- .buildkite/scripts/common/env.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.buildkite/scripts/common/env.sh b/.buildkite/scripts/common/env.sh index 2644fb2048669..5efca7d6ad159 100755 --- a/.buildkite/scripts/common/env.sh +++ b/.buildkite/scripts/common/env.sh @@ -8,6 +8,7 @@ KIBANA_DIR=$(pwd) export KIBANA_DIR export XPACK_DIR="$KIBANA_DIR/x-pack" +export XDG_CACHE_HOME="$HOME/.cache" export CACHE_DIR="$HOME/.kibana" export ES_CACHE_DIR="$HOME/.es-snapshot-cache" PARENT_DIR="$(cd "$KIBANA_DIR/.."; pwd)" @@ -94,7 +95,6 @@ export TEST_CORS_SERVER_PORT=6105 if [[ "$(which google-chrome-stable)" || "$(which google-chrome)" ]]; then echo "Chrome detected, setting DETECT_CHROMEDRIVER_VERSION=true" export DETECT_CHROMEDRIVER_VERSION=true - export CHROMEDRIVER_FORCE_DOWNLOAD=true else echo "Chrome not detected, installing default chromedriver binary for the package version" fi