13
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

はじめてのgrunt-gh-pages

Last updated at Posted at 2013-11-20

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で作られる

13
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?