尝试在Golang产品中使用Travis CI(适合初学者)#golang

利用之前创建的Golang和Line Notify,在API证书过期检查上对Travis CI进行适配,并在推送到git时自动执行goimports / golint / go vet。

安装 Travis CI。

Travis CI是什么?

点击「注册」按钮

スクリーンショット 2017-10-04 22.22.41.png

请确认内容,并点击”授权 travis-ci”按钮

スクリーンショット 2017-10-04 22.23.01.png

请输入密码

スクリーンショット 2017-10-04 22.23.19.png

完成合作

スクリーンショット 2017-10-04 22.23.42.png

看看仪表板上是否显示了仓库。

スクリーンショット 2017-10-04 22.36.25.png

在目标存储库中检查

スクリーンショット 2017-10-04 22.43.18.png

Travis CI 的准备已经完成。

在Git中进行Travis CI的设置

在项目的根目录下创建一个名为“.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 上

$ git push origin master

确认结果

Kobito.Ridolu.png

用日志确认执行结果

$ 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 引起的。

运行 goimports 并再次将其推送到 Git

$ goimports -w .
Kobito.tAK7ew.png

确认整个代码库go vet命令运行无误,除了goimports之外。

命令”go vet ./…”以退出码0退出。
$ diff <(goimports -d .) <(printf “”)

命令”diff <(goimports -d .) <(printf “”)”退出状态为0。
$ diff <(golint ./…) <(printf “”)

命令”diff <(golint ./…) <(printf “”)”以0退出。

额外内容(在README.md中显示Travis CI的结果)

点击「通过构建」状态图标

Kobito.hCe2ew.png

将格式更改为Markdown。

Kobito.zzHQD7.png

请在README.md文件中添加

Kobito.7knI1I.png

附录

    ソースコード
广告
将在 10 秒后关闭
bannerAds