LoginSignup
6
3

More than 5 years have passed since last update.

はじめてのCircleCI

Last updated at Posted at 2018-12-01

CircleCIとは

CircleCIは、クラウド型のCIツールです。

求人をみていると、多くの名だたる日本企業がCircleCIを採用していたので、触ってみる事にしました。ちなみに私はJenkinsしか触ったことないCircleCI初心者です。

使ってみた

早速ホームページ見てみます。CircleCI Japanは最近(2018/11)設立されたのですね。
先ほどクラウド型と書いたのですが、オンプレ型も対応しているようです。

ユーザー登録

ホームページ下の方に"CircleCIを使ってみる"ボタンがあるのでポチすると、ユーザー登録画面に遷移します。
GitHubアカウントでログインし、CircleCIと連携させます。
スクリーンショット 2018-12-01 11.25.47.png

わーい、ユーザー登録してGithub連携できました。

Getting Started

まずCirCleCI上にプロジェクトをつくるために、"Add Project"を選択します。
Githubにプロジェクトを作成して、"Set up Project"を選択します。(コードはこちらを参考にさせていただきました)

スクリーンショット 2018-12-01 12.59.26.png

$tree
.
└── cmd
    ├── hello
    │   ├── hello.go
    │   └── hello_test.go
    └── main.go
cmd/hello/hello.go
package hello

func English() string {
    return "Hello, world"
}

func Japanese() string {
    return "Hello, world"      /* <- ここがバグ */
    return "こんにちは、世界"
}

func Chinese() string {
    return "你好,是世界"
}
cmd/hello/hello_test.go
package hello

import (
    "testing"
)

func TestGreeting(t *testing.T) {
    if Japanese() != "こんにちは、世界" {
        t.Errorf("Excepted %s, But %s.", "こんにちは、世界", Japanese())
    }
    if Chinese() != "你好,是世界" {
        t.Errorf("Excepted %s, But %s.", "你好,是世界", Chinese())
    }
    if English() != "Hello, world" {
        t.Errorf("Excepted %s, But %s.", "Hello, world", English())
    }
}

Set up Project

config.ymlをプロジェクトに配置します。書かれてある通りに、
1. .circleci/config.ymlを作成
2. sample.ymlの値をコピー
3. アップデート
4. GitにPush
5. ビルド!
すればOKです。

config.ymlの設定

config.ymlの設定をします。
ここでは最低限だけ設定しますので、詳細はGOのドキュメントGoのデモをご参照ください。

config.yml
##circleciのバージョン
version: 2
##ジョブ定義
jobs:
  ##自動的に実行されるジョブ。必須。                              
  build:
    ##dockerがタスクの実行環境                        
    docker:
      ##dockerイメージ
      - image: circleci/golang:1.9

    ##ステップが実行されるディレクトリ
    working_directory: /go/src/github.com/uguisuhohokekyo/helloWorldGOGO

    ##実行単位ステップを記述していく
    steps:

      ##working_directoryにチェックアウト
      - checkout
      - run: go test -v ./cmd/hello/

start building

それではリモートレポジトリにconfig.ymlをpushしたのち、"start building"を実行してみます。

スクリーンショット 2018-12-01 14.15.12.png

Jobが実行され、エラーが表示されました。エラーですよというメールまで飛んできましたね。
スクリーンショット 2018-12-01 15.42.04.png

エラーの内容を見てみると、"こんにちは、世界"と表示されるべきところが、"Hello, world"となっていますね。
cmd/hello/hello.goを修正して(エラー部分をコメントアウトすればOK)、pushしてみましょう。

Success!!

Git pushをトリガーに自動的にJobが実行されました。
そして結果を見てみると、、、わーい成功しました\(^o^)/
スクリーンショット 2018-12-01 15.50.12.png
(私は色々試行錯誤して20回目でやっと成功、、、)
スクリーンショット 2018-12-01 16.06.04.png

まとめ

Github上のソースコード変更から、テストまでを簡単に自動化できました。
UIも綺麗ですし、何より自動化すると気持ちがすっきりして気持ちいいですね。
日本語対応もされると勝手に思っていますので、これからが楽しみです。

再掲ですが、今回使用したコードはGithub上に公開していますので、必要だったら使ってください。

6
3
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
6
3