From 1ac08b26322adb61ab2f79803ccc64ea4dbad8bd Mon Sep 17 00:00:00 2001 From: Seth Ladd Date: Tue, 12 Jul 2016 12:53:47 -0700 Subject: [PATCH] Firebase hosting for docs (#4871) * configs for firebase hosting * use the implicit FIREBASE_TOKEN * don't print every command (lowers the chance of printing secret env vars, and for realz only deploy when merging into master --- .travis.yml | 1 + dev/bots/docs.sh | 15 +++++++++++++-- dev/bots/test.sh | 3 +++ dev/docs/.firebaserc | 1 + dev/docs/firebase.json | 11 +++++++++++ dev/docs/firebase_rules.json | 6 ++++++ 6 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 dev/docs/.firebaserc create mode 100644 dev/docs/firebase.json create mode 100644 dev/docs/firebase_rules.json diff --git a/.travis.yml b/.travis.yml index 618045d935..ccb1f30970 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,7 @@ addons: - libstdc++6 install: - gem install coveralls-lcov + - npm install -g firebase-tools@">=3.0.4 <3.1.0" before_script: - ./dev/bots/setup.sh script: diff --git a/dev/bots/docs.sh b/dev/bots/docs.sh index 94298b3084..da0a7d44d7 100755 --- a/dev/bots/docs.sh +++ b/dev/bots/docs.sh @@ -1,5 +1,5 @@ #!/bin/bash -set -ex +set -e # Install dartdoc. pub global activate dartdoc @@ -14,7 +14,9 @@ dart dev/tools/dartdoc.dart # Ensure google webmaster tools can verify our site. cp dev/docs/google2ed1af765c529f57.html dev/docs/doc -# Upload the docs. +# Upload the docs to cloud storage. +# TODO: remove this when we're comfortable with Firebase hosting. + if [ "$1" = "--upload" ]; then # This isn't great, because we're uploading our files twice. But, # we're ensuring we're not leaving any deleted files on the server. @@ -29,3 +31,12 @@ if [ "$1" = "--upload" ]; then # Ensure compressable files are gzipped and then stored. gsutil -m cp -r -z "js,json,html,css" dev/docs/doc/* gs://docs.flutter.io/ fi + +# Upload new API docs when on Travis and branch is master + +if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then + if [ "$TRAVIS_BRANCH" = "master" ]; then + cd dev/docs + firebase deploy --project docs-flutter-io + fi +fi \ No newline at end of file diff --git a/dev/bots/test.sh b/dev/bots/test.sh index 46105b7d8a..afeafde425 100755 --- a/dev/bots/test.sh +++ b/dev/bots/test.sh @@ -53,3 +53,6 @@ if [ -n "$COVERAGE_FLAG" ]; then STORAGE_URL=gs://flutter_infra/flutter/coverage/lcov.info $GSUTIL cp packages/flutter/coverage/lcov.info $STORAGE_URL fi + +# generate the API docs, upload them +dev/bots/docs.sh \ No newline at end of file diff --git a/dev/docs/.firebaserc b/dev/docs/.firebaserc new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/dev/docs/.firebaserc @@ -0,0 +1 @@ +{} diff --git a/dev/docs/firebase.json b/dev/docs/firebase.json new file mode 100644 index 0000000000..90946884d2 --- /dev/null +++ b/dev/docs/firebase.json @@ -0,0 +1,11 @@ +{ + "rules": "firebase_rules.json", + "hosting": { + "public": "doc", + "ignore": [ + "firebase.json", + "**/.*", + "**/node_modules/**" + ] + } +} diff --git a/dev/docs/firebase_rules.json b/dev/docs/firebase_rules.json new file mode 100644 index 0000000000..f136602947 --- /dev/null +++ b/dev/docs/firebase_rules.json @@ -0,0 +1,6 @@ +{ + "rules": { + ".read": false, + ".write": false + } +}