2019-07-10 19:32:22 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
2019-10-23 00:39:04 +00:00
|
|
|
set -ue
|
2019-07-10 19:32:22 +00:00
|
|
|
|
2019-10-23 00:39:04 +00:00
|
|
|
echo "--- dependencies"
|
2019-07-15 22:19:45 +00:00
|
|
|
export LANG=C.UTF-8 LANGUAGE=C.UTF-8
|
2019-10-23 00:39:04 +00:00
|
|
|
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
|
|
|
|
}
|
|
|
|
|
2019-10-23 00:36:00 +00:00
|
|
|
apt-get update -y
|
2019-10-23 00:39:04 +00:00
|
|
|
apt-get install sudo awscli -y
|
2019-10-23 00:36:00 +00:00
|
|
|
|
|
|
|
echo "--- setting up user"
|
|
|
|
useradd -m -U --uid 2000 normal
|
|
|
|
echo "normal ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/normal
|
2019-07-15 22:19:45 +00:00
|
|
|
|
2019-09-11 23:20:19 +00:00
|
|
|
echo "--- updating rubygems"
|
|
|
|
gem update --system -N
|
|
|
|
|
2019-07-10 19:32:22 +00:00
|
|
|
echo "--- system details"
|
|
|
|
uname -a
|
2019-09-11 23:20:19 +00:00
|
|
|
gem env
|
2019-07-10 19:32:22 +00:00
|
|
|
bundle --version
|
|
|
|
|
|
|
|
echo "--- bundle install"
|
2019-10-23 00:39:04 +00:00
|
|
|
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
|
2019-07-10 19:32:22 +00:00
|
|
|
bundle install --jobs=7 --retry=3 --without tools maintenance deploy
|
|
|
|
|
2019-10-23 00:39:04 +00:00
|
|
|
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
|
|
|
|
|
2019-07-10 19:32:22 +00:00
|
|
|
echo "+++ bundle exec rake"
|
2019-10-23 00:36:00 +00:00
|
|
|
# TODO: run this as non-root:
|
|
|
|
# chown -R normal:normal /home/normal /workdir
|
|
|
|
# su normal -c "bundle exec rake ${RAKE_TASK:-}"
|
2019-09-12 20:51:26 +00:00
|
|
|
bundle exec rake ${RAKE_TASK:-}
|