kibana/.ci/packer_cache.sh
spalger d7b2889b28 [packer_cache] make packer_cache idempotent
When issues arise while building the packer_cache, like the ongoing es snapshot download errors, the cache scripts
are retried (up to 5 attempts). In order for this to work the script needs to be idempotent, but `mkdir` is failing
if the .chromedriver or .geckodriver directory already exists because they were not using the -p option.
2019-03-31 18:13:10 -07:00

60 lines
2 KiB
Bash
Executable file

#!/usr/bin/env bash
set -e
branch="$(git rev-parse --abbrev-ref HEAD 2> /dev/null)"
# run setup script that gives us node, yarn, and bootstraps the project
source src/dev/ci_setup/setup.sh;
# download es snapshots
node scripts/es snapshot --download-only;
node scripts/es snapshot --license=oss --download-only;
# download reporting browsers
(cd "x-pack" && yarn gulp prepare);
# cache the chromedriver archive
chromedriverDistVersion="$(node -e "console.log(require('chromedriver').version)")"
chromedriverPkgVersion="$(node -e "console.log(require('./package.json').devDependencies.chromedriver)")"
if [ -z "$chromedriverDistVersion" ] || [ -z "$chromedriverPkgVersion" ]; then
echo "UNABLE TO DETERMINE CHROMEDRIVER VERSIONS"
exit 1
fi
mkdir -p .chromedriver
curl "https://chromedriver.storage.googleapis.com/$chromedriverDistVersion/chromedriver_linux64.zip" > .chromedriver/chromedriver.zip
echo "$chromedriverPkgVersion" > .chromedriver/pkgVersion
# cache the geckodriver archive
geckodriverPkgVersion="$(node -e "console.log(require('./package.json').devDependencies.geckodriver)")"
if [ -z "$geckodriverPkgVersion" ]; then
echo "UNABLE TO DETERMINE geckodriver VERSIONS"
exit 1
fi
mkdir -p ".geckodriver"
cp "node_modules/geckodriver/geckodriver.tar.gz" .geckodriver/geckodriver.tar.gz
echo "$geckodriverPkgVersion" > .geckodriver/pkgVersion
# archive cacheable directories
mkdir -p "$HOME/.kibana/bootstrap_cache"
tar -cf "$HOME/.kibana/bootstrap_cache/$branch.tar" \
node_modules \
packages/*/node_modules \
x-pack/node_modules \
x-pack/plugins/*/node_modules \
x-pack/plugins/reporting/.chromium \
test/plugin_functional/plugins/*/node_modules \
.es \
.chromedriver \
.geckodriver;
echo "created $HOME/.kibana/bootstrap_cache/$branch.tar"
if [ "$branch" == "master" ]; then
echo "Creating bootstrap cache for 7.x";
git clone https://github.com/elastic/kibana.git --branch 7.x --depth 1 /tmp/kibana-7.x
(cd /tmp/kibana-7.x && ./.ci/packer_cache.sh);
rm -rf /tmp/kibana-7.x;
fi