-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ci] Cache chromedriver #196614
[ci] Cache chromedriver #196614
Conversation
Chromedriver is currently downloaded at runtime on each agent. We know the expected version of Chrome at image build time, and can install the matching driver at the same time instead. This sets XDG_CACHE_HOME to $HOME/.cache. Details on the specification can be found at https://specifications.freedesktop.org/basedir-spec/latest/. Other binaries, including cypress, playwright, bazelisk and yarn respect this environment variable, but are already falling back to the .cache directory.
buildkite test this |
buildkite test this |
Pinging @elastic/kibana-operations (Team:Operations) |
💛 Build succeeded, but was flaky
Failed CI StepsMetrics [docs]
History
|
Starting backport for target branches: 7.17, 8.15, 8.16, 8.x |
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 b89941f)
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 b89941f)
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 b89941f)
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 b89941f)
💚 All backports created successfully
Note: Successful backport PRs will be merged automatically after passing CI. Questions ?Please refer to the Backport tool documentation |
This ends up breaking bazel. It's already cached in the same folder but this addition also ends up moving the BUILD.bazel files to .cache which is pointing to the wrong folder. |
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.