2016年1月9日土曜日

AppVeyorでgo buildしたものをデプロイする方法

artifactsまわりでハマったのでメモ

appveyor.yml

ssh/scp/sftpでアップする例


version: 1.0.{build}
os: Windows Server 2012 R2
clone_folder: c:\gopath\src\github.com\dopin\hoge
environment:
  GOPATH: C:\gopath
  GO15VENDOREXPERIMENT: 1
install:
  - set PATH=C:\gopath\bin;C:\msys64\mingw64\bin;%PATH%
  - go get github.com/kr/godep
  - godep restore
build_script:
  - cmd: go build -o hoge.exe cmd\hoge\main.go
after_build:
  - cmd: 7z a hoge.zip hoge.exe
test_script:
  - cmd: godep go test -v
deploy:
  provider: FTP
  protocol: sftp
  host: devml.blogspot.jp
  username: user
  folder: appveyor # /home/user/appveyor にアップロードされる
  password:
    secure: # https://ci.appveyor.com/tools/encrypt で生成
artifacts:
  - path: hoge.zip
    name: hoge

artifactsを指定しないと何も生成したことにならない

deployのartifactで頑張って指定してたけど、Neither artifacts nor application were uploaded.
と言われて全然できなかった。

正解はartifactsで指定。deployの方はartifactを省略すれば、artifactsで指定したものすべてが対象になるので、最終的に削除した。

ビルドはクロスコンパイルすることもできるから、そこでAppVeyorを使う意味はもしかするとないのかもしれないけど、テストついでにアップロードまでしてくれる方がいいじゃん!ということで。

0 件のコメント: