【发布时间】:2015-10-13 19:48:57
【问题描述】:
我有一个 Go 项目,我想使用 Travis-CI 构建并将其部署到特定的提供商。 我熟悉Gimme project,它将使用交叉编译来做到这一点。 但是因为 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
有没有一种干净的方式来结合这两者(使用环境变量或任何其他疯狂的想法)?
【问题讨论】:
标签: go operating-system cross-compiling travis-ci