備忘録も兼ねて書きます。
この方法でもgh-pages
にデプロイ可能ですが、今回は個人ではなく
OrganizationでのGithub Pagesの利用なので[組織名].github.io
にデプロイをします。
##1. 開発用リポジトリを作ります。
適当に開発用のhtmlやcssをjsをおいてコミットしてください。
##2. 別リポジトリ[組織名]/[組織名].github.io
を作成
リポジトリにはあとでファイルを追加するので空にしておいてください。
今回はexample/example.github.io
を作ったとします。
##3. Travis CIの設定
ルートリポジトリに.travis.yml
を設置してください。今回は以下のとおりです。
デプロイの実行はdeploy.sh
で行います。
マスターブランチかつプルリクじゃない場合はデプロイをするようにしています。
language: node_js
node_js:
- 0.12
sudo: false
script:
- '[ "$TRAVIS_BRANCH" == master ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && bash ./deploy.sh'
cache:
directories:
- node_modules
その後はTravis CIからGithubにアクセスするにはAPIトークンが必要です。しかしそのままトークンを設定するのはマズイので暗号化します。Travis CIでは環境変数を暗号化することができます。
今回の場合、Travis CIのgitからpushするために、Github.comのPersonal access tokensからトークンを取得しルートディレクトリ直下で
npm install travis-encrypt -g
travis-encrypt -r '組織名/リポジトリ名' -k GH_TOKEN -v 'Githubから取得したトークン' --add
をすると自動的に設定した環境変数が追加されます。
env:
global:
- secure: dfei543fe... //GH_TOKEN
##4. deploy.sh
あとはdeploy.shをディレクトリ直下に置く
#!/bin/bash
set -e
rm -rf public || exit 0;
mkdir public
# publicフォルダに開発用ファイルを展開する。
cp -r src/* public
cd public
git config user.email "example@example.com"
git config user.name "Travis-CI"
git init
git add .
git commit -m "Deploy to GitHub Pages"
git push --force --quiet "https://${GH_TOKEN}@github.com/example/example.github.io.git" master:master > /dev/null 2>&1
gh-pages
にデプロイする場合はmaster:master
をmaster:gh-pages
にしてください。
あとはTravisCIと連携してpushで回るはず。
##参考