Travis CI - 在.travis.yml中使用存储库环境变量

时间:2015-11-16 12:58:48

标签: travis-ci

我希望在我的Travis CI存储库设置中声明环境变量,并在我的.travis.yml文件中使用它们来部署应用程序并在Slack中发布构建通知。

我在Travis CI存储库设置中设置了环境变量,如下所示:

Travis CI repository environment variables

我的.travis.yml文件显示如下:

language: node_js
node_js:
  - '0.12'
cache:
  directories:
    - node_modules
deploy:
  edge: true
  provider: cloudfoundry
  api: $CF_API
  username: $CF_USERNAME
  password: $CF_PASSWORD
  organization: $CF_ORGANIZATION
  space: $CF_SPACE
notifications:
  slack: $NOTIFICATIONS_SLACK

当我按原样将值添加到.travis.yml文件中时,一切都按计划进行。

但是,当我尝试引用存储库中设置的环境变量时,我没有收到构建状态的Slack通知,部署失败。

我是否正确地遵循了这个过程,或者我正在监督哪些事情?

1 个答案:

答案 0 :(得分:12)

我认为在Travis CI的序列中可能需要读取环境变量。

我建议使用travis command-line tool加密它们。

E.g。

$ travis encrypt
Reading from stdin, press Ctrl+D when done
username
Please add the following to your .travis.yml file:

secure: "TD955qR6qvpVIz3fLkGeeUhV76deeVRaLVYjW9YjV6Ob7wd+vPtACZ..."

Pro Tip: You can add it automatically by running with --add.

然后我会将secure: "TD955qR6qvpVIz3fLkGeeUhV76d..."结果复制/粘贴到.travis.yml文件中的适当位置:

language: node_js
node_js:
  - '0.12'
cache:
  directories:
    - node_modules
deploy:
  edge: true
  provider: cloudfoundry
  api:
    secure: "bHU4+ZDFeZcHpuE/WRpgMBcxr8l..."
  username:
    secure: "TD955qR6qvpVIz3fLkGeeUhV76d..."

您可以获得有关如何在Travis CI here上加密敏感数据的更多详细信息。

希望这有帮助。