summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Smith <tsmith84@gmail.com>2019-11-21 10:34:08 -0800
committerTim Smith <tsmith84@gmail.com>2019-11-21 10:34:08 -0800
commitf0eac1dd0cc15beaffd8c2d887236d7962baf16b (patch)
tree547305aa7ef8913552bf5c66358fa426e76e37d3
parentc4fbe62ded1959b5cd022a3e5766b6f6bb98151f (diff)
downloadohai-f0eac1dd0cc15beaffd8c2d887236d7962baf16b.tar.gz
Switch the ohai / chefstyle test over to the new S3 caching
This brings in our script from Chef-DK Signed-off-by: Tim Smith <tsmith@chef.io>
-rwxr-xr-x.expeditor/run_linux_tests.sh53
-rw-r--r--.expeditor/verify.pipeline.yml20
-rw-r--r--Rakefile4
3 files changed, 70 insertions, 7 deletions
diff --git a/.expeditor/run_linux_tests.sh b/.expeditor/run_linux_tests.sh
new file mode 100755
index 00000000..4c14c804
--- /dev/null
+++ b/.expeditor/run_linux_tests.sh
@@ -0,0 +1,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 $1
diff --git a/.expeditor/verify.pipeline.yml b/.expeditor/verify.pipeline.yml
index 35f2feb8..d2e66070 100644
--- a/.expeditor/verify.pipeline.yml
+++ b/.expeditor/verify.pipeline.yml
@@ -1,24 +1,30 @@
-steps:
+---
+expeditor:
+ defaults:
+ buildkite:
+ retry:
+ automatic:
+ limit: 1
+ timeout_in_minutes: 30
+steps:
- label: lint-chefstyle
command:
- - bundle install --jobs=7 --retry=3 --without docs debug
- - bundle exec rake style
+ - .expeditor/run_linux_tests.sh style
expeditor:
executor:
docker:
- label: run-ohai
command:
- - bundle install --jobs=7 --retry=3 --without docs debug
- - bundle exec ohai
+ - .expeditor/run_linux_tests.sh run_ohai
expeditor:
executor:
docker:
- label: run-specs-ruby-2.5
command:
- - asdf local ruby 2.5.5
+ - asdf local ruby 2.5.7
- bundle install --jobs=7 --retry=3 --without docs debug
- bundle exec rake spec
expeditor:
@@ -27,7 +33,7 @@ steps:
- label: run-specs-ruby-2.6
command:
- - asdf local ruby 2.6.3
+ - asdf local ruby 2.6.5
- bundle install --jobs=7 --retry=3 --without docs debug
- bundle exec rake spec
expeditor:
diff --git a/Rakefile b/Rakefile
index 200737d3..b62f1fd6 100644
--- a/Rakefile
+++ b/Rakefile
@@ -31,6 +31,10 @@ rescue LoadError
puts "yard is not available. bundle install first to make sure all dependencies are installed."
end
+task :run_ohai do
+ sh "bundle exec ohai"
+end
+
task :console do
require "irb"
require "irb/completion"