grunt-gh-pagesはGitリポジトリのgh-pagesブランチにコミットをし、originにプッシュをしてくれるプラグインです。
なかなか便利だったのでメモなのです。
作業ディレクトリはGitリポジトリである前提です。
インストール
- grunt
- grunt-gh-pages
をインストールします。
$ npm install grunt grunt-gh-pages
Gruntfile
Gruntfile
を以下のように書きます。
module.exports = (grunt) ->
grunt.initConfig
'gh-pages':
options:
base: 'public/'
message: 'updated'
src: [
'**/*'
'**/.*'
]
grunt.loadNpmTasks 'grunt-gh-pages'
return
ディレクトリをbase
で指定し、src
で取得するファイルを指定します。
この場合、public/
以下にあるすべてのファイルとフォルダをgh-pagesブランチにコミットすることになります。
message
はgh-pagesにコミットする際のコミットメッセージです。とりあえず'updated'
を指定しています。
(追記)
ver.0.9から、dotfilesというオプションが追加されたようです。このオプションにより、
src: [
'**/*'
'**/.*'
]
でなく、
options:
dotfiles: true
src: '**/*'
と記述しても先頭がドットから始まるファイルを対象に含めることができるようです。
実行
これでプッシュする準備は整ったので実行してみます。
$ grunt gh-pages
Running "gh-pages:src" (gh-pages) task
Cloning https://sasaplus1@github.com/sasaplus1/(どこかのリポジトリ).git into .grunt/grunt-gh-pages/gh-pages/src
Cleaning
Fetching origin
Checking out origin/gh-pages
Removing files
Copying files
Adding all
Committing
Pushing
Password for 'https://sasaplus1@github.com':
Done, without errors.
と、base
で指定したディレクトリ以下のファイルを自動でコミット・プッシュしてくれます。
gh-pagesを使うことはよくあると思うので、面倒だと思っている方にとってはとても便利なものなのではないでしょうか。
gh-pagesでなくとも、branch
オプションで好きなブランチ名に変更したり、repo
オプションでGitHub以外のリポジトリを指すようにすることもできるので、Jenkinsと連携するなど違った使い方もできるかもしれません。
注意点など
-
gh-pagesブランチを先に作ってはいけない
- エラーが発生する
- gh-pagesブランチは自動的に作成される
-
ブランチは
--orphan
で作られる