LoginSignup
7
10

More than 5 years have passed since last update.

circle-ciを使ってみる

Last updated at Posted at 2018-11-07

概要

今まで、jenkinsを使っていましたが、運用が面倒なため、クラウドを試してみる。
雑誌で見かけて、1コンテナ無料なのでまた使ってみることにしました。
とりあえず、環境を整える意味で試してみたことをメモする。

必要なツール

  • Docker Toolbox on macOS
  • gitコマンド
  • circleciコマンド

Dockerインストール

Mac上でDockerを使うためにDocker Toolboxをインストールする。
( ※ Docker for macは遅いので、Toolboxを選択 )

Macなので、Homebrewでサクッとインストールする。
( ※ ダウンロードしてのインストールはうまくいかないことがある )

ターミナル
$ brew update
$ brew cask install docker-toolbox

gitコマンドのインストール

※ インストール済みの場合は省略

ターミナル
$ brew install git
$ git --version
git version 2.19.1

circleciコマンドのインストール

ターミナル
$ brew install circleci
$ circleci version
0.1.3923+6fecf9d

リポジトリ作成

下記のようにgitコマンドにてリポジトリを作成する。
※ 例は、bitbucket.orgを利用したものです。
※ 今回は、~/circleci/フォルダに作成することにします。

ターミナル
# 作業フォルダ作成
$ mkdir ~/circleci/
$ cd ~/circleci/

### リポジトリ作成 & コミット
$ git init
$ echo '# circle-ci' > README.md
$ git add README.md
$ git commit -m "first commit."

# リモート設定 & プッシュ
$ git remote add origin git@bitbucket.org:*****/*************.git
$ git push -u origin master

設定ファイルの作成

下記のように設定ファイルを作る

.circleci/config.yml
version: 2
jobs:
  build: 
    docker:
      - image: circleci/node:8.11.3
    steps:
      - run: echo "hello world"

設定ファイルのチェック

設定ファイルの記述が間違っていないかチェックする。

ターミナル
$ circleci config validate
Config file at .circleci/config.yml is valid.

ローカル実行

macにインストールしたdocker toolboxで実行してみる。
アプリケーション -> Docker -> Docker Quickstart Terminal.app
toolbox.png

Dockerが起動したら、下記のコマンドを実行してみる。

ターミナル
$ circleci local execute
  ・
  ・
  ・
====>> echo "hello world"
  #!/bin/bash -eo pipefail
echo "hello world"
hello world
Success!

bitbucketへのコミットで実行

circle-ciの管理画面からプロジェクト追加を行い、bitbucketのリポジトリを登録する。

Circle Ci / Add Projects
https://circleci.com/add-projects/bb/reflet

bitbucketへコミット & プッシュする。

ターミナル
$ vi README.md   <- 説明文を修正
$ git add README.md
$ git commit -m "ドキュメントの更新"
$ git push origin master

ジョブが自動実行され、CircleCiの管理画面で下記のように実行結果が見れる。
exec.png

CIをスキップしたいとき

動作に関係ない説明文(README.md)の修正など、CIを回したくないのでそういった場合には、
コミットメッセージに[ci skip]を追加したらいいようです。

ターミナル
$ git commit -m "ドキュメントの更新[ci skip]"

実行例) skippedとなっている
skip.png

ssh接続してみる

デバックなどの目的でSSH接続できるようなので、試してみる。
Circle-Ciの管理画面で、Jobsメニューから接続したいジョブの詳細ページで「Return workflow」メニューから「Return job with SSH」を選択する。
ssh.png

下記の表示がされるので、そこに記載のコマンド(IPアドレス)で接続してみる。
ssh2.png

ターミナル
$ ssh -p 64*** ***.***.***.***

# パス確認
circleci@46cc590a9841:~$ pwd
/home/circleci

# ファイル確認
circleci@814b5d524352:~$ ls -la
total 24
drwxr-xr-x 3 circleci circleci 4096 Nov  8 05:28 .
drwxr-xr-x 5 root     root     4096 Nov  8 05:28 ..
-rw-r--r-- 1 circleci circleci  220 Nov  5  2016 .bash_logout
-rw-r--r-- 1 circleci circleci 3515 Nov  5  2016 .bashrc
-rw-r--r-- 1 circleci circleci  675 Nov  5  2016 .profile
drwxr-xr-x 2 circleci circleci 4096 Nov  8 05:28 project

# projectフォルダの中は空っぽ?
circleci@814b5d524352:~$ ls -la project
total 24
drwxr-xr-x 3 circleci circleci 4096 Nov  8 05:28 .
drwxr-xr-x 5 root     root     4096 Nov  8 05:28 ..

# 終了
circleci@46cc590a9841:~$ exit
exit
Connection to ***.***.***.*** closed.

コンテナは、起動したら10分間ぐらい接続可能なようです。
必要なくなったら、SSH終了後、Circle-Ciの画面からジョブを終了した方が良さそう。
(次のジョブがScheduledになって実行されないようなので・・・)

以上

参考サイト

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