我有一个 Go 项目,我想用 Travis-CI 构建它并将其部署到特定的提供者。我熟悉Gimme 项目,它将使用交叉编译来做到这一点。但是因为 Travis 已经支持 linux 和 osx,所以我只需要在 Windows 构建中使用这个功能。
当然,最大的动机是避免交叉编译运行时错误,因为它有很多。
我的问题是如何在同一个 .travis.yml 文件中创建不同的构建流程:
本机 linux/os 构建(带有“os”部分)。
使用 Gimmme 进行 Windows 编译
第一个选项的 .travis.yml 文件如下所示:
language: go
go:
- 1.5.1
branches:
only:
- master
os:
- osx
- linux
before_script:
- go get -d -v ./...
script:
- go build -v ./...
# - go test -v ./...
before_deploy:
- chmod +x ./before_deploy.sh
- ./before_deploy.sh
第二个选项的 .travis.yml 文件将类似于:
language: go
go:
- 1.5.1
branches:
only:
- master
env:
- GIMME_OS=windows GIMME_ARCH=amd64
before_script:
- go get -d -v ./...
script:
- go build -v ./...
# - go test -v ./...
before_deploy:
- chmod +x ./before_deploy.sh
- ./before_deploy.sh
有没有一种很好的干净的方法来将这两者结合起来(使用环境变量或任何其他疯狂的想法)?
婷婷同学_
相关分类