我已经设置了一个简单的go存储库并按以下方式配置了TravisCI
language: go
go:
- 1.8.x
- master
gobuild_args: -ldflags "-X main.Version=${TRAVIS_TAG} -X main.buildTime=`date -u '+%Y-%m-%d_%I:%M:%S%p'` -X main.commitId=${TRAVIS_COMMIT}"
env:
- GOOS=linux GOARCH=amd64
- GOOS=windows GOARCH=amd64
after_success:
- ./build.sh
matrix:
allow_failures:
- go: master
这将基本上在TravisCI中创建4个不同的版本。这非常适合构建一个交叉编译项目,我可以单独构建windows和linux二进制文件。
我一直在努力做的是在这些版本中生成的所有二进制文件中在Github中创建一个单独版本?
TravisCI文档说它们支持发布,但是如何处理这种情况却非常模糊。
有人试过这个吗?
答案 0 :(得分:0)
由于您使用的是Golang,请查看ghr。
我已将它与CircleCI一起使用 - 它很简单:
ghr -t $GITHUB_TOKEN -u $CIRCLE_PROJECT_USERNAME -r $CIRCLE_PROJECT_REPONAME v1.0.$CIRCLE_BUILD_NUM $CIRCLE_ARTIFACTS/ || true
WHERE ...
$GITHUB_TOKEN
是用于发布文件的github token。我相信你需要回购阅读和用户访问权。
$CIRCLE_PROJECT_USERNAME
是github用户
$CIRCLE_PROJECT_REPONAME
是您在Github上的存储库名称
$CIRCLE_BUILD_NUM
是CircleCI给出的内部版本号(我喜欢将它用作点版本以匹配发布版本和版本版本)
$CIRCLE_ARTIFACTS
是CircleCI上的构建工件路径
最后的|| true
确保即使创建发布和上传文件失败,我也不会对整个构建失败。