Travis-CI:在.travis.yml文件的deploy部分中使用环境变量

Shi*_*shi 6 travis-ci bintray

我正在使用Travis-CI构建我的Go项目,到目前为止,我使用gimmetravis go环境的组合脚本来交叉编译项目.

我切换到支持GOOSGOARCH环境变量的Go 1.5 交叉编译器,而不需要其他编译器或脚本.

我的问题是我正在使用Bintray部署,我的环境变量在部署阶段没有公开.

language: go

go:
  - 1.5

env:
    matrix:
       - GOOS=windows GOARCH=amd64
       - GOOS=linux GOARCH=amd64
       - GOOS=linux GOARCH=386
       - GOOS=darwin GOARCH=amd64
before_script:
  - go get -d -v ./...

script:
  - go build -v ./...

before_deploy:
  - chmod +x ./prepare_bintray_deployment.sh
  - "./prepare_bintray_deployment.sh"

deploy:
  file: bintray_descriptors/${GOOS}_${GOARCH}.json
  provider: bintray
Run Code Online (Sandbox Code Playgroud)

需要注意的是这种变化之前,我用的是GIMME_OSGIMME_ARCH环境变量和它工作得很好,这让我相信,特拉维斯不支持这一点.

可能是什么问题呢?

Sco*_*ott 1

这样的事情对我有用:

script:
  - # do some build stuff here
  - echo ${MY_VAR} > my_var.txt

before_deploy:
  - export MY_VAR=$(cat my_var.txt)

deploy:
  file: foo/bar_${MY_VAR}.json
  skip_cleanup: true
Run Code Online (Sandbox Code Playgroud)

本质上,您似乎无法访问从部署部分的脚本部分导出的动态变量,但您可以将它们写下来(输出到文件),然后稍后访问它们。