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

Sim*_*ney 24 travis-ci

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

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

Travis CI存储库环境变量

我的.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
Run Code Online (Sandbox Code Playgroud)

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

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

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

Dom*_*oin 15

我认为Travis CI的序列可能还为时过早,因为您的环境变量无法读取.

我建议使用travis 命令行工具加密它们.

例如

$ 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.
Run Code Online (Sandbox Code Playgroud)

然后我将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..."
Run Code Online (Sandbox Code Playgroud)

您可以在此处获取有关如何在Travis CI上加密敏感数据的更多详细信息.

希望这可以帮助.