Goで書かれたmackerel-agentのOSS化や自動化にまつわるあれこれ
TIME rest time current/total
TopicsPlaceHolder

Goで書かれたmackerel-agentのOSS化や自動化にまつわるあれこれ

Hatena Engineer Seminar #4

Feb 7th, 2015

Profile

songmu

Mackerel Logo

 

オープンソースにしているもの

https://github.com/mackerelio/

僕が入社してからやったこと/やろうとしていること

mackerel-agent

OSSにする理由

ユーザーがハックできる余地を残しておく

Travis CIの場合

https://github.com/travis-ci/travis-cookbooks/pull/320

github-servicesの場合

https://github.com/github/github-services/tree/master/lib/services

ソースをオープンにして第1段階クリア

何故githubにホストするか

どのようにパッチ受付体制を整えるのか

CI

Travis CI

mackerel-agentのCIでやってること

golintをCIする

ただ、些細なコーディングスタイルの違いで議論したくないのでgolintで警告が出たらCIがコケるようにしたい

#!/bin/sh
rm -f .golint.txt
for os in "linux" "darwin" "freebsd" "windows"; do
    GOOS=$os golint ./... | tee -a .golint.txt
done
test ! -s .golint.txt

Coveralls

Windows対応

レビュー体制

mackerel-agent-plugins

多くのplugin

リリースプロセスをオープンに

https://github.com/mackerelio/mackerel-agent-plugins/pull/45

パッケージの自動ビルド

仕組み

Perlでツール作成(標準モジュール縛り)

ツールをテストする

tool/releng

tool/autotag

Travisにtagをgit pushさせる

課題

まとめ