Skip to main content

Werckerでgit submoduleを使う

· 3 min read

WerckerでGitHubのソースをgit submoduleで活用する場合には準備が必要。

このように単純にgit submoduleを実行するスクリプトを定義しても失敗する。

- script:
name: git submodules
code: git submodule update -i --recursive

必要な準備は次の2つ。

  • SSHキー使用の準備
  • GitHubをknown_hostsに登録する

git submoduleを実行する際にそのサーバーが信頼できることと、パスワードを求められないようにするための施策である。

SSHキー使用の準備

SSHキーの登録はWerckerのサイト内だけで完結する。

[-] wercker - Applications https://app.wercker.com/applications

  1. 上記ページからSSHキーを登録したいアプリケーションを選択する
  2. Environmentタブを選択する
  3. 右下のGenerate SSH Keysをクリックする
  4. 適当な名称を指定してSSHキーを生成する

ここではWERCKER_BLOGという名称でSSHキーを生成したとする。
以上の手順を踏むと次の2つの環境変数が生成される。

  • WERCKER_BLOG_PUBLIC
  • WERCKER_BLOG_PRIVATE

WERCKER_BLOG_PUBLICのValue(公開鍵)をコピーする。

次にGitHubのSSH keysに登録する。

[-] SSH and GPG keys
https://github.com/settings/keys

右上のNew SSH Keyをクリックし、先程コピーしておいた公開鍵を貼り付け、登録を完了する。

wercker.ymlには次のように追記する。

- add-ssh-key:
keyname: WERCKER_BLOG
host: github.com

keynameは先程作った環境変数であり、_PUBLIC_PRIVATEを含まない文字列である。

GitHubをknown_hostsに登録する

GitHubに接続するためにknown_hostsに登録しておく。
単純にwercker.ymlに次の3行を追記するだけである。

- add-to-known_hosts:
hostname: github.com
fingerprint: 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48

git submoduleに関するwercker.yml

まとめると、wercker.ymlは次のようになる。

steps:
- add-ssh-key:
keyname: WERCKER_BLOG
host: github.com
- add-to-known_hosts:
hostname: github.com
fingerprint: 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
- script:
name: git submodules
code: git submodule update -i --recursive