我希望在我的Travis CI存储库设置中声明环境变量,并在我的.travis.yml文件中使用它们来部署应用程序并在Slack中发布构建通知。
我在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
当我按原样将值添加到.travis.yml文件中时,一切都按计划进行。
但是,当我尝试引用存储库中设置的环境变量时,我没有收到构建状态的Slack通知,部署失败。
我是否正确地遵循了这个过程,或者我正在监督哪些事情?
答案 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上加密敏感数据的更多详细信息。
希望这有帮助。