mirror of
https://github.com/inspec/inspec
synced 2024-11-22 20:53:11 +00:00
Add buildkite caching to our verify pipeline.
I'm not sure why we're doing this ourselves instead of using buildkite's own artifact caching, but that's fine. This speeds up the "bundle install" phase from ~3m to ~20s. Signed-off-by: Ryan Davis <zenspider@chef.io>
This commit is contained in:
parent
c93d61da1c
commit
3cc4b4d0b4
1 changed files with 32 additions and 2 deletions
|
@ -1,10 +1,23 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -ueo pipefail
|
set -ue
|
||||||
|
|
||||||
|
echo "--- dependencies"
|
||||||
export LANG=C.UTF-8 LANGUAGE=C.UTF-8
|
export LANG=C.UTF-8 LANGUAGE=C.UTF-8
|
||||||
|
S3_URL="s3://public-cd-buildkite-cache/${BUILDKITE_PIPELINE_SLUG}/${BUILDKITE_LABEL}"
|
||||||
|
|
||||||
|
pull_s3_file() {
|
||||||
|
aws s3 cp "${S3_URL}/$1" "$1" || echo "Could not pull $1 from S3"
|
||||||
|
}
|
||||||
|
|
||||||
|
push_s3_file() {
|
||||||
|
if [ -f "$1" ]; then
|
||||||
|
aws s3 cp "$1" "${S3_URL}/$1" || echo "Could not push $1 to S3 for caching."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
apt-get update -y
|
apt-get update -y
|
||||||
apt-get install sudo -y
|
apt-get install sudo awscli -y
|
||||||
|
|
||||||
echo "--- setting up user"
|
echo "--- setting up user"
|
||||||
useradd -m -U --uid 2000 normal
|
useradd -m -U --uid 2000 normal
|
||||||
|
@ -19,8 +32,25 @@ gem env
|
||||||
bundle --version
|
bundle --version
|
||||||
|
|
||||||
echo "--- bundle install"
|
echo "--- bundle install"
|
||||||
|
pull_s3_file "bundle.tar.gz"
|
||||||
|
pull_s3_file "bundle.sha256"
|
||||||
|
|
||||||
|
if [ -f bundle.tar.gz ]; then
|
||||||
|
tar -xzf bundle.tar.gz
|
||||||
|
fi
|
||||||
|
|
||||||
|
bundle config --local path vendor/bundle
|
||||||
bundle install --jobs=7 --retry=3 --without tools maintenance deploy
|
bundle install --jobs=7 --retry=3 --without tools maintenance deploy
|
||||||
|
|
||||||
|
if [[ -f bundle.tar.gz && -f bundle.sha256 ]] && shasum --check bundle.sha256 --status; then
|
||||||
|
echo "Bundled gems have not changed. Skipping upload to s3"
|
||||||
|
else
|
||||||
|
shasum -a 256 vendor/bundle > bundle.sha256
|
||||||
|
tar -czf bundle.tar.gz vendor/
|
||||||
|
push_s3_file bundle.tar.gz
|
||||||
|
push_s3_file bundle.sha256
|
||||||
|
fi
|
||||||
|
|
||||||
echo "+++ bundle exec rake"
|
echo "+++ bundle exec rake"
|
||||||
# TODO: run this as non-root:
|
# TODO: run this as non-root:
|
||||||
# chown -R normal:normal /home/normal /workdir
|
# chown -R normal:normal /home/normal /workdir
|
||||||
|
|
Loading…
Reference in a new issue