summaryrefslogtreecommitdiff
path: root/.expeditor
diff options
context:
space:
mode:
authorTim Smith <tsmith84@gmail.com>2019-12-19 20:13:03 -0800
committerTim Smith <tsmith84@gmail.com>2019-12-19 20:13:03 -0800
commit26cb37535f4f1f46bf91469caa3fbc45738643de (patch)
tree82ea8cdcb485343bb99f9fbfe7503ad8a1c7df11 /.expeditor
parent5804b90e01c461b2f264c95c6699edc4913e5908 (diff)
downloadmixlib-shellout-26cb37535f4f1f46bf91469caa3fbc45738643de.tar.gz
Test on Ruby 2.7 + random testing improvements
Update the Github templates to use multiple labels Use Gem caching our BK Add Ruby 2.7 testing Use Debian 10 Ruby containers not Debian 9 Signed-off-by: Tim Smith <tsmith@chef.io>
Diffstat (limited to '.expeditor')
-rw-r--r--.expeditor/config.yml3
-rwxr-xr-x.expeditor/run_linux_tests.sh53
-rw-r--r--.expeditor/verify.pipeline.yml30
3 files changed, 73 insertions, 13 deletions
diff --git a/.expeditor/config.yml b/.expeditor/config.yml
index 7032e6c..a3d4b3d 100644
--- a/.expeditor/config.yml
+++ b/.expeditor/config.yml
@@ -1,5 +1,6 @@
# Documentation available at https://expeditor.chef.io/docs/getting-started/
---
+
# Slack channel in Chef Software slack to send notifications about build failures, etc
slack:
notify_channel: chef-found-notify
@@ -12,6 +13,8 @@ rubygems:
github:
# This deletes the GitHub PR branch after successfully merged into the release branch
delete_branch_on_merge: true
+ # The tag format to use (e.g. v1.0.0)
+ version_tag_format: "v{{version}}"
# allow bumping the minor release via label
minor_bump_labels:
- "Expeditor: Bump Version Minor"
diff --git a/.expeditor/run_linux_tests.sh b/.expeditor/run_linux_tests.sh
new file mode 100755
index 0000000..4c14c80
--- /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 3f46d3a..57afa06 100644
--- a/.expeditor/verify.pipeline.yml
+++ b/.expeditor/verify.pipeline.yml
@@ -9,8 +9,7 @@ steps:
- label: run-lint-and-specs-ruby-2.2
command:
- export USER="root"
- - bundle install --jobs=7 --retry=3 --without docs debug style
- - bundle exec rake spec
+ - .expeditor/run_linux_tests.sh rake
expeditor:
executor:
docker:
@@ -19,8 +18,7 @@ steps:
- label: run-lint-and-specs-ruby-2.3
command:
- export USER="root"
- - bundle install --jobs=7 --retry=3 --without docs debug
- - bundle exec rake
+ - .expeditor/run_linux_tests.sh rake
expeditor:
executor:
docker:
@@ -29,32 +27,38 @@ steps:
- label: run-lint-and-specs-ruby-2.4
command:
- export USER="root"
- - bundle install --jobs=7 --retry=3 --without docs debug
- - bundle exec rake
+ - .expeditor/run_linux_tests.sh rake
expeditor:
executor:
docker:
- image: ruby:2.4-stretch
+ image: ruby:2.4-buster
- label: run-lint-and-specs-ruby-2.5
command:
- export USER="root"
- - bundle install --jobs=7 --retry=3 --without docs debug
- - bundle exec rake
+ - .expeditor/run_linux_tests.sh rake
expeditor:
executor:
docker:
- image: ruby:2.5-stretch
+ image: ruby:2.5-buster
- label: run-lint-and-specs-ruby-2.6
command:
- export USER="root"
- - bundle install --jobs=7 --retry=3 --without docs debug
- - bundle exec rake
+ - .expeditor/run_linux_tests.sh rake
+ expeditor:
+ executor:
+ docker:
+ image: ruby:2.6-buster
+
+- label: run-lint-and-specs-ruby-2.7rc
+ command:
+ - export USER="root"
+ - .expeditor/run_linux_tests.sh rake
expeditor:
executor:
docker:
- image: ruby:2.6-stretch
+ image: ruby:2.7-rc-buster
- label: run-specs-windows
command: