LoginSignup
19
16

More than 5 years have passed since last update.

CircleCIのBuildに対してSSHをしてみる手順

Posted at

CircleCIのビルド中におかしな挙動があったりした時に、SSH接続をして原因を探る仕組みがあるようです。
https://circleci.com/docs/ssh-build

その時に行った手順のメモ。

公開鍵を作成

Macならば、ターミナルから以下のコマンドを実行して、鍵を作成します。
ssh-keygen -t rsa -C "your_email@example.com"

基本的にはEnterを連打でOKです。(パスフレーズはなしにします)
出来上がったファイルは以下のとおり。

$ ls ~/.ssh/
id_rsa id_rsa.pub ...

今回できたid_rsa.pubが公開鍵です。(無印は秘密鍵なので注意しましょう。)

Githubに公開鍵を登録

Setting -> SSH keys -> Add SSH key 」で先ほど作った公開鍵を登録します。(コピペ)
正しく設定された場合は、以下のコマンドを実行して確認します。

ssh -T git@github.com

初回アクセスの場合はいつものが表示されますが、その後に下記のように表示されたら成功です。

Hi username! You've successfully authenticated, but GitHub does not
provide shell access.

CircleCIのビルドをSSH付きで再実行

Githubに公開鍵を登録する前にビルドをしても、アクセスが有効になりません。(ハマりました)
ビルドの画面右上にある「 with ssh 」でビルドを再実行します。この時、ビルドが終わってから30分はデバッグのためにアクセスが有効になるようです。

ビルドが開始されたらSSHでアクセスする

ビルドの画面について「 Debug via SSH 」のタブを開くと、SSHの接続コマンドが表示されています。

例)
ssh -p xxxxx ubuntu@xx.xxx.xxx.xx

こちらのコマンドをコピペすればログインすることができます。

気になってたこと

そもそも、何でSSHアクセスしようとしていたかというと、gradleのタスクの中で、gulpの実行がコケてしまったことでした。
ですが、よく見ると、その前に実行しているnpmsassbowerは動いており、これはどういうことか?と気になったからでした。
結果としては、CircleCIのコンテナにもろもろ標準で装備されていたらしく、PATHが通っていたために実行されていたというオチでした。
(ちなみにgulpはありませんでしたがgruntは入ってました)

19
16
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
19
16