patternfly-eng-publish
v0.0.4
Published
A collection of scripts for publishing PatternFly sites.
Downloads
20
Readme
patternfly-eng-publish
A set of scripts for publishing PatternFly sites.
Usage
This script will publish files to the gh-pages branch of your repo.
publish-ghpages.sh [option] folder
Example: publish-ghpages.sh
OPTIONS:
h Display this message
t Perform a deploy from travis, using a travis encrypted key
w Remove non-web files from the SITE_FOLDER/components folder prior to publishing
b Remote branch this script will publish to
default: gh-pages
r Git repo this script will publish to
eg.: origin, upstream, bleathem, [email protected]:bleathem/bleathem.github.io.git
default: origin
Installation
npm install --save-dev patternfly-eng-publish
Add a run script to your package.json with appropriate options set:
"scripts": {
"publish": "publish-ghpages.sh public"
},
Use npm run publish
to publish the site.
Invoking from travis
Add another npm run script:
"scripts": {
"publish-travis": "publish-ghpages.sh -t public"
},
Update the .travis.yml file to invoke the script:
env:
global:
- ENCRYPTION_LABEL: "XXXXXXXXXXXX"
- COMMIT_AUTHOR_EMAIL: "[email protected]"
- TRIGGER_REPO_SLUG: "patternfly/patternfly-atomic"
- TRIGGER_REPO_BRANCH: "master"
...
after_success:
- npm run publish-travis
Adding deploy keys
We create a new key for every repo. Upload the public key to the repos via the github UI under Settings -> Deploy Keys.
ssh-keygen -t rsa -b 4096 -C "[email protected]" -f deploy-key_patternfly-design
The private key gets encrypted and placed in the repo itself. gem isntall travis
to use the travis tool to encrypt it. Don't follow the instructions in the output of that command, but you do extract the encryption label from that message.
travis encrypt-file deploy_key
The publish-ghpages cript is written such that it will look for the file called "deploy_key.enc" and use the ENCRYPTION_LABEL env var to decrypt it. It then uses ssh-agent to load the key and use it for git pushes (over ssh).
There is no need to share the keys. We can re-create them more easily than we can manage sharing them.