まずは、CircleCIからデプロイ先サーバに接続するために秘密鍵を登録する。
詳細は以下。
thoames.hatenadiary.jp
そして以下設定を.circleci/config.ymlに追加。
※「'xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx'」のフィンガープリントは
上記のリンク内の、SSH Permissions設定を行うと出力される。
[Add ssh-agent]箇所では、SSH agent forwardingを行うための設定をしている。
登録した秘密鍵をssh_agentに追加。
以下はコミットされたブランチがマスターブランチのときのみデプロイが走る例。
- add_ssh_keys: fingerprints: - 'xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx' - run: name: Add ssh-agent command: | ssh-agent -s > ~/.ssh_agent_conf source ~/.ssh_agent_conf for _k in $(ls ${HOME}/.ssh/id_*); do ssh-add ${_k} || true done - deploy: name: Deploy via Capistrano command: | if [ "${CIRCLE_BRANCH}" != "master" ]; then exit 0 fi bundle exec cap production deploy
[参考]
CircleCI 2.0 で capistrano デプロイしてみた / マスタカの ChangeLog メモ
CircleCI 2.0を使うようにするだけで、こんなに速くなるとは夢にも思わなかった! | Tokyo Otaku Mode Blog