diff options
| author | Chris Rebert <[email protected]> | 2016-06-27 14:19:10 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2016-06-27 14:19:10 -0700 |
| commit | e95e9fed09a4ef19d093ad8c44611da396c61d01 (patch) | |
| tree | ff6824a2177ddb5501259fe01d878bc9a90a8bcb | |
| parent | bba039d2fd1ffbd95a03589e9e87fd55cb273302 (diff) | |
| download | bootstrap-e95e9fed09a4ef19d093ad8c44611da396c61d01.tar.xz bootstrap-e95e9fed09a4ef19d093ad8c44611da396c61d01.zip | |
Allow PRs to be previewed at http://preview.twbsapps.com (#20179)
| -rw-r--r-- | .travis.yml | 1 | ||||
| -rw-r--r-- | Gruntfile.js | 16 | ||||
| -rw-r--r-- | grunt/gcp-key.json.enc | bin | 0 -> 2304 bytes | |||
| -rwxr-xr-x | grunt/upload-preview.sh | 28 |
4 files changed, 39 insertions, 6 deletions
diff --git a/.travis.yml b/.travis.yml index 2f5ad1e96..89ed1f763 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,6 +25,7 @@ cache: directories: - node_modules - vendor/bundle + - "$HOME/google-cloud-sdk" env: global: - NPM_CONFIG_PROGRESS="false" diff --git a/Gruntfile.js b/Gruntfile.js index 065fea774..69dfa3873 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -277,6 +277,9 @@ module.exports = function (grunt) { }, 'postcss-docs': { command: 'npm run postcss-docs' + }, + 'upload-preview': { + command: './grunt/upload-preview.sh' } }, @@ -351,12 +354,13 @@ module.exports = function (grunt) { // Only run Sauce Labs tests if there's a Sauce access key if (typeof process.env.SAUCE_ACCESS_KEY !== 'undefined' && // Skip Sauce if running a different subset of the test suite - runSubset('sauce-js-unit') && - // Skip Sauce on Travis when [skip sauce] is in the commit message - isUndefOrNonZero(process.env.TWBS_DO_SAUCE)) { - testSubtasks.push('babel:dev'); - testSubtasks.push('connect'); - testSubtasks.push('saucelabs-qunit'); + runSubset('sauce-js-unit')) { + testSubtasks = testSubtasks.concat(['dist', 'docs-css', 'docs-js', 'clean:docs', 'copy:docs', 'exec:upload-preview']); + // Skip Sauce on Travis when [skip sauce] is in the commit message + if (isUndefOrNonZero(process.env.TWBS_DO_SAUCE)) { + testSubtasks.push('connect'); + testSubtasks.push('saucelabs-qunit'); + } } grunt.registerTask('test', testSubtasks); diff --git a/grunt/gcp-key.json.enc b/grunt/gcp-key.json.enc Binary files differnew file mode 100644 index 000000000..6e1856a2f --- /dev/null +++ b/grunt/gcp-key.json.enc diff --git a/grunt/upload-preview.sh b/grunt/upload-preview.sh new file mode 100755 index 000000000..905d716ab --- /dev/null +++ b/grunt/upload-preview.sh @@ -0,0 +1,28 @@ +#!/bin/bash +# Upload built docs to preview.twbsapps.com + +if [ "$TRAVIS_REPO_SLUG" != twbs-savage/bootstrap ]; then exit 0; fi + +# Add build metadata to version +sed -i "/^current_version:/ s/\$/+pr.${TRAVIS_COMMIT}/" _config.yml +# Fix URLs since the site's root is now a subdirectory +echo "baseurl: /c/${TRAVIS_COMMIT}" >> _config.yml +bundle exec jekyll build --destination "$TRAVIS_COMMIT" + +# Install gcloud & gsutil +GSUTIL_VERSION=$(gsutil version | cut -d ' ' -f 3) +if [ ! -d "${HOME}/google-cloud-sdk" ] || [ "${GSUTIL_VERSION}" != '4.19' ]; then + rm -rf "${HOME}/google-cloud-sdk" # Kill Travis' outdated non-updateable preinstalled version + echo 'Installing google-cloud-sdk...' + export CLOUDSDK_CORE_DISABLE_PROMPTS=1 + time (curl -S -s https://sdk.cloud.google.com | bash &>/dev/null) + echo 'Done.' +fi +source "${HOME}/google-cloud-sdk/path.bash.inc" + +openssl aes-256-cbc -K $encrypted_2b749c8e6327_key -iv $encrypted_2b749c8e6327_iv -in grunt/gcp-key.json.enc -out grunt/gcp-key.json -d +gcloud auth activate-service-account "$GCP_SERVICE_ACCOUNT" --key-file grunt/gcp-key.json &> /dev/null || (echo 'GCP login failed!'; exit 1) + +echo "Uploading to http://preview.twbsapps.com/c/${TRAVIS_COMMIT} ..." +time gsutil -q -m cp -z html,css,js,svg -r "./${TRAVIS_COMMIT}" gs://preview.twbsapps.com/c/ +echo 'Done.' |
