summaryrefslogtreecommitdiff
path: root/.expeditor/run_linux_tests.sh
blob: 2e6c34c0cf6cf1da06a3cafab357d7146e4cb7d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/bin/bash
#
# This script runs a passed in command, but first setups up the bundler caching on the repo

set -ue

export USER="root"

echo "--- dependencies"
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 install awscli -y

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

if [ -n "${RESET_BUNDLE_CACHE:-}" ]; then
    rm bundle.sha256
fi

bundle config --local path vendor/bundle
bundle install --jobs=7 --retry=3

echo "--- bundle cache"
if test -f bundle.sha256 && shasum --check bundle.sha256 --status; then
    echo "Bundled gems have not changed. Skipping upload to s3"
else
    echo "Bundled gems have changed. Uploading to s3"
    shasum -a 256 Gemfile.lock > bundle.sha256
    tar -czf bundle.tar.gz vendor/
    push_s3_file bundle.tar.gz
    push_s3_file bundle.sha256
fi

echo "+++ bundle exec task"
bundle exec $@