エンジニアはこわくない

好きなように書く

Circleci2.0でローカルにインストール可能なので挙動調査してみました


スポンサーリンク

f:id:tsujitaku50:20170402145336p:plain

こんにちは、つじたく(@Tsuji_Taku50)です。

circleci2.0になってローカルにcircleciをインストールできるようになりましたね!

これでcircleciのビルドを確認するたびにリポジトリにpushする必要がなくなりました!

感激!

インストール

公式ドキュメントにインストール方法が書いてあるので、それに従って作業します。

circleci.com


インストール方法は以下です。

$curl -o /usr/local/bin/circleci https://circle-downloads.s3.amazonaws.com/releases/build_agent_wrapper/circleci && chmod +x /usr/local/bin/circleci


キチンとインストールされているか確認してみます。

% circleci                                                                                                                                                                                                                (git)-[master]
Receiving latest version of circleci...
Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on 192.168.65.1:53: read udp 192.168.65.2:42849->192.168.65.1:53: i/o timeout

エラーが出るようです。。。

エラーから予測するに、僕のローカルにインストールしてあるdockerがおかしいのかな?

と思ったので、dockerを再起動してみました。

もう一度確認してみます。

% circleci                                                                                                                                                                                                                                                       (git)-[master]
Receiving latest version of circleci...
The CLI tool to be used in CircleCI.

Usage:
  circleci [flags]
  circleci [command]

Available Commands:
  build       run a full build locally
  config      validate and update configuration files
  tests       collect and split files with tests
  version     output version info

Flags:
  -c, --config string   config file (default is .circleci/config.yml)
      --taskId string   TaskID
      --verbose         emit verbose logging output

Use "circleci [command] --help" for more information about a command.

インストールされているようです!

実際に試してみる

今回は下記リポジトリで試してみます。

github.com

使い方は普段のcircleci同様、ディレクトリのトップにcircle.ymlを配置して処理を書いておきます。

注意点としてはcircleci2.0と使う場合、circle.ymlにversion: 2を書かなければいけません。

ローカルでcircleciを実行してみます。

% circleci build                                                                                                                                                                                                                                                 (git)-[master]

====>> Spin up Environment
・・・
====>> run go code
  #!/bin/bash -eo pipefail
go get -t github.com/google/go-querystring/query
go vet ./connpass/
go test ./connpass/

ok      _/.go/src/github.com/TsujiTakuya55/go-connpass/connpass   0.005s
Success!

無事に成功しました!

実際にビルドしたcircle.ymlの処理は下記になります。

version: 2
jobs:
    build:
        working_directory: /.go/src/github.com/TsujiTakuya55/go-connpass
        docker:
            - image: golang:latest
              environment:
                  GO15VENDOREXPERIMENT: 1
        steps:
            - checkout
            - run:
                name: "run go code"
                command: |
                    go get -t github.com/google/go-querystring/query
                    go vet ./connpass/
                    go test ./connpass/

circleci1.0 → circleci2.0の変更点

circleci1.0 → circleci2.0に伴い、circle.ymlの書き方もかなり変更になります。

変更点が多すぎるので公式ドキュメントを貼り付けておきます。

circleci.com

まとめ

circleci2.0になって新機能も増えて、circleciの評判も周りで聞いてる限りはすこぶるいいような気がします。

これからcircleci2.0を使って気づいた点があれば、また紹介したいと思います。

おわり!!