Golang のプロダクトで Travis CI を使ってみる(初心者用) #golang
以前作ったGolang と Line Notify を利用して API の証明書期限切れチェックで Travis CI に対応して、git に push したタイミングで自動的に goimports / golint / go vet を実行できるようにする。
Travis CI をセットアップ
Travis CI
「Sign Up」ボタンをクリック
内容を確認し「Authorize travis-ci」ボタンをクリック
パスワードを入力
連携完了
ダッシュボードでリポジトリが表示されていることを確認
※ 表示されない場合は「Sync account」ボタンをクリック
CI 対象のレポジトリにチェック
これで Travis CI の準備は完了
Git に Travis CI の設定を行う
プロジェクトのルートディレクトリに「.travis.yml」を作成
travis.yml
language: go
install:
- go get -u golang.org/x/tools/cmd/goimports
- go get -u github.com/golang/lint/golint
script:
- go vet ./...
- diff <(goimports -d .) <(printf "")
- diff <(golint ./...) <(printf "")
追加したファイルを Git に push
$ git push origin master
結果を確認
language: go
install:
- go get -u golang.org/x/tools/cmd/goimports
- go get -u github.com/golang/lint/golint
script:
- go vet ./...
- diff <(goimports -d .) <(printf "")
- diff <(golint ./...) <(printf "")
$ git push origin master
実行結果を log で確認
$ diff <(goimports -d .) <(printf "")
1,29d0
< diff -u apichecker.go.orig apichecker.go
< --- apichecker.go.orig 2017-10-04 15:47:01.829005000 +0000
< +++ apichecker.go 2017-10-04 15:47:01.829005000 +0000
< @@ -1,13 +1,13 @@
< package main
<
< import (
< - "fmt"
< - "net/http"
< "flag"
< + "fmt"
< + "io/ioutil"
< "log"
< + "net/http"
< "net/url"
< "strings"
< - "io/ioutil"
< "time"
< )
<
< @@ -37,7 +37,7 @@
< expire := "-"
< if len(resp.TLS.PeerCertificates) > 0 {
< expireUTCTime := resp.TLS.PeerCertificates[0].NotAfter
< - expireJSTTime := expireUTCTime.In(time.FixedZone("Asia/Tokyo", 9 * 60 * 60))
< + expireJSTTime := expireUTCTime.In(time.FixedZone("Asia/Tokyo", 9*60*60))
< expire = expireJSTTime.Format("06/01/02 15:04")
< }
< result = fmt.Sprintf("OK (expire=%s)\n%s", expire, endpoint)
The command "diff <(goimports -d .) <(printf "")" exited with 1.
goimports で diff が出ているのが原因なのが判明
goimports を実行して Git に再度 Push
$ goimports -w .
goimports 以外も問題なく実行できていルことを確認
```sh
$ go vet ./...
The command "go vet ./..." exited with 0.
$ diff <(goimports -d .) <(printf "")
The command "diff <(goimports -d .) <(printf "")" exited with 0.
$ diff <(golint ./...) <(printf "")
The command "diff <(golint ./...) <(printf "")" exited with 0.
```
おまけ(README.md に Travis CI の結果を表示)
「build:pass」ステータスアイコンをクリック
形式を Markdown に変更
README.md に追記
Appendix
Author And Source
この問題について(Golang のプロダクトで Travis CI を使ってみる(初心者用) #golang), 我々は、より多くの情報をここで見つけました https://qiita.com/ynozue/items/6966b06f40752a0e7cca著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .