mirror of
https://github.com/zhigang1992/react-native-paper.git
synced 2026-06-11 16:29:43 +08:00
chore(deploy): Setup auto deployment to gh-pages (#128)
This commit is contained in:
committed by
Satyajit Sahoo
parent
73cdf89378
commit
2abd6792fd
11
.travis.yml
11
.travis.yml
@@ -1,5 +1,9 @@
|
||||
language: node_js
|
||||
cache: yarn
|
||||
env:
|
||||
global:
|
||||
- ENCRYPTION_LABEL "efa09eced906"
|
||||
- COMMIT_AUTHOR_EMAIL "gh-bot@callstack.io"
|
||||
node_js:
|
||||
- 'stable'
|
||||
before_install:
|
||||
@@ -12,9 +16,4 @@ install:
|
||||
script:
|
||||
- yarn run flow -- check
|
||||
- yarn run lint
|
||||
deploy:
|
||||
provider: script
|
||||
script: docs/deploy.sh
|
||||
skip_cleanup: true
|
||||
on:
|
||||
branch: master
|
||||
- cd docs && bash ./deploy.sh
|
||||
|
||||
BIN
deploy_key.enc
Normal file
BIN
deploy_key.enc
Normal file
Binary file not shown.
@@ -1,25 +1,64 @@
|
||||
#!/bin/bash
|
||||
# Based on domenic's tutorial: https://gist.github.com/domenic/ec8b0fc8ab45f39403dd
|
||||
set -e # Exit with nonzero exit code if anything fails
|
||||
|
||||
set -e
|
||||
SOURCE_BRANCH="master"
|
||||
TARGET_BRANCH="gh-pages"
|
||||
|
||||
git clone https://${GITHUB_TOKEN}@github.com/callstack-io/react-native-paper.git docs/dist
|
||||
function doCompile {
|
||||
npm run build
|
||||
}
|
||||
|
||||
cd docs/dist
|
||||
# Pull requests and commits to other branches shouldn't try to deploy, just build to verify
|
||||
if [ "$TRAVIS_PULL_REQUEST" != "false" -o "$TRAVIS_BRANCH" != "$SOURCE_BRANCH" ]; then
|
||||
echo "Skipping deploy; just doing a build."
|
||||
doCompile
|
||||
exit 0
|
||||
fi
|
||||
|
||||
git checkout gh-pages
|
||||
rm -rf **
|
||||
# Save some useful information
|
||||
REPO=`git config remote.origin.url`
|
||||
SSH_REPO=${REPO/https:\/\/github.com\//git@github.com:}
|
||||
SHA=`git rev-parse --verify HEAD`
|
||||
|
||||
cd .. && npm run build && cd dist
|
||||
# Clone the existing gh-pages for this repo into dist/
|
||||
# Create a new empty branch if gh-pages doesn't exist yet (should only happen on first deply)
|
||||
git clone $REPO dist
|
||||
cd dist
|
||||
git checkout $TARGET_BRANCH || git checkout --orphan $TARGET_BRANCH
|
||||
cd ..
|
||||
|
||||
if [ -z "$(git diff --exit-code)" ]; then
|
||||
# Clean dist existing contents
|
||||
rm -rf dist/**/* || exit 0
|
||||
|
||||
# Run our compile script
|
||||
doCompile
|
||||
|
||||
# Now let's go have some fun with the cloned repo
|
||||
cd dist
|
||||
git config user.name "Travis CI"
|
||||
git config user.email "$COMMIT_AUTHOR_EMAIL"
|
||||
|
||||
# If there are no changes to the compiled dist (e.g. this is a README update) then just bail.
|
||||
if git diff --quiet; then
|
||||
echo "No changes to the output on this push; exiting."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
git config user.name "Travis CI"
|
||||
git config user.email "bot@travis-ci.org"
|
||||
|
||||
# Commit the "changes", i.e. the new version.
|
||||
# The delta will show diffs between new and old versions.
|
||||
git add -A .
|
||||
git commit -m "Deploy documentation: $(git rev-parse --verify HEAD)"
|
||||
git commit -m "Deploy to GitHub Pages: ${SHA}"
|
||||
|
||||
git push -f -u origin gh-pages
|
||||
# Get the deploy key by using Travis's stored variables to decrypt deploy_key.enc
|
||||
ENCRYPTED_KEY_VAR="encrypted_${ENCRYPTION_LABEL}_key"
|
||||
ENCRYPTED_IV_VAR="encrypted_${ENCRYPTION_LABEL}_iv"
|
||||
ENCRYPTED_KEY=${!ENCRYPTED_KEY_VAR}
|
||||
ENCRYPTED_IV=${!ENCRYPTED_IV_VAR}
|
||||
openssl aes-256-cbc -K $ENCRYPTED_KEY -iv $ENCRYPTED_IV -in ../deploy_key.enc -out ../deploy_key -d
|
||||
chmod 600 ../deploy_key
|
||||
eval `ssh-agent -s`
|
||||
ssh-add deploy_key
|
||||
|
||||
# Now that we're all set up, we can push.
|
||||
git push $SSH_REPO $TARGET_BRANCH
|
||||
|
||||
Reference in New Issue
Block a user