LoginSignup
8
8

More than 5 years have passed since last update.

OctopressをBitbucketで管理し、Werckerでデプロイする方法

Last updated at Posted at 2015-04-21

はじめに

はじめに、基本的な状況を説明します。

まず、前提として、Octopressのソースコードは、今までローカルまたは、GitHubで管理していました。

GitHubは、プライベートリポジトリの設定ができないため、全部のソースが公開されてしまいます。

したがって、公開が望ましくない秘匿性を含むファイルは、.gitignoreでアップロードしないように設定し、ローカルで管理していましたが、それを含め、OctopressのソースコードをBitbucketのプライベートリポジトリで管理するように変更しました。

.gitignore
.bundle
.DS_Store
_deploy
public
sass.old
source.old
source/_stash
source/stylesheets/screen.css
vendor
node_modules
Gemfile.lock
.gist-cache
.sass-cache

例えば、私の場合は、Google APIを使い記事ごとのアクセス数を集計し、その結果をサイドバーに表示するプラグインを使用しています。いわゆる人気記事サイドバーというやつですね。

ここで、Google APIを使用するには、シークレットキーなど秘匿性を含む情報が必要で、それを記述したファイルを.gitignoreなどに書いていました。

また、基本的に、cacheファイルも公開には向きませんが、ビルドには向きますので、それらを.gitignoreから消して、Bitbucketのプライベートリポジトリにpushすることにします。

Bitbucket

今まで、GitHubでバージョン管理していたので、それをBitbucketの.gitに切り替えます。

$ rm -rf .git

$ git init

$ git remote add origin https://username@bitbucket.org/username/repository.git

Wercker

そして、wercker.ymlを書いて、リポジトリをpushします。

wercker.yml
box: wercker/rvm

build:
    steps:
        - rvm-use:
            version: 1.9.3

        - bundle-install

        - script:
            name: build with octopress
            code: bundle exec rake generate

deploy:
  steps:
    - script:
        name: Get commit message
        code: |
          export COMMIT_MSG=$(git log --pretty=format:"%s" -1)
    - script:
        name: Configure git
        code: |-
          git config --global user.email "user@email.com"
          git config --global user.name "user"
          rm -rf .git
    - script:
        name: Deploy to github pages
        code: |-
          cd ./public
          git init
          git add .
          git commit -m "${COMMIT_MSG}"
          git push -f https://${GITHUB_TOKEN}@github.com/syui/syui.github.io.git master
$ git add .

$ git commit -m "bitbucket"

$ git push -u origin master

次に、Werckerでアプリを設定。

Apps > Add an application

でアプリを追加します。ここには、GitHubのリポジトリを指定します。

Settings > Deploy targets > Add deploy target > Custom deploy

でデプロイ対象を追加。Auto deploy はチェックして、ソースの方のブランチ名を指定します。

Deploy pipleline > Add new variable

にて、werckerで使う環境変数を設定します。ここでは、GitHubのAPIを使えるようにしたいと思います。変数名は、GITHUB_TOKENにしておいてください。設定ファイルの記述が変わってきます。

GitHubで

Settings > Applications > Personal Access Tokens

でトークンを発行生成し、そのキーをWerckerのところに記述します。

完了すれば、リポジトリにファイルをpushするだけで、自動デプロイが実行され、ブログが更新されます。

参考

わかりにくければ、以下の記事及び、画像を参考にしてみてください。

WerckerでMiddlemanのBuild,Deployを自動化する

8
8
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
8
8