エンジニアはこわくない

自分の好きな音楽とか雑記とかエンジニアっぽい内容を好きなように書く場所。

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を使って気づいた点があれば、また紹介したいと思います。

おわり!!

広告を非表示にする