From b89941f3ab072135cc3c343f083e2669831ea4af 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. --- .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 511f6ead2d43c..2704f894cf2b6 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)" @@ -110,7 +111,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