我使用 travis-ci 来测试我的 node.js 应用程序。因为应用程序需要用户使用 Access Key 和 Secret Key 登录进行测试,所以我需要在 travis-ci 的 .travis.yml 文件中指定这两个 key 。那么我该怎么做呢?以及如何在Node中获取这些环境参数?
像这两个参数:https://github.com/ikbear/nodejs-sdk/blob/feature/copy_and_move_file/test/rs.test.js#L22
我想像这样在 .travis.yml 中指定它们:
language: node_js
node_js:
- 0.8
- 0.6
- 0.4
env:
- QINIU_ACCESS_KEY = '2FRuiVGEsA511NS9pNd2uvuSB3k5ozXE_DHCH8Ov' QINIU_SECRET_KEY = 'CIRtcmymB3VeIfXebFvYxmMmH9u2oLKW6rffVvoK'
那么如何从我的测试文件中获取 QINIU_ACCESS_KEY 和 QINIU_SECRET_KEY? https://github.com/ikbear/nodejs-sdk/blob/feature/copy_and_move_file/test/rs.test.js
最佳答案
更新:Travis 现在支持defining variables directly in build respositories通过他们的网络用户界面。所以,除非你有需要 generate local encrypted variables manually for your .travis.yml file (根据下面的原始答案),这似乎是使用 Travis CI 获取环境变量的最简单方法。
我不确定关于 Node.js 的细节,但是如果你想在你的 .travis.ymlQINIU_ACCESS_KEY 和 QINIU_SECRET_KEY
> 如果它们不是纯文本,请制作它们 secure environment variables :
第 0 步:安装 travis gem(Install Rubygems 如果您还没有安装它;不确定是否有其他方法获取 travis
命令或执行下面第 1 步的其他方法) :
$ gem install travis
第 1 步:加密值,记下结果:
$ travis encrypt QINIU_ACCESS_KEY=2FRuiVGEsA511NS9pNd2uvuSB3k5ozXE_DHCH8Ov
$ travis encrypt QINIU_SECRET_KEY=CIRtcmymB3VeIfXebFvYxmMmH9u2oLKW6rffVvoK
第 2 步:将值添加到您的 .travis.yml 文件:
env:
global:
- secure: {{ENCRYPTED_QINIU_ACCESS_KEY}}
- secure: {{ENCRYPTED_QINIU_SECRET_KEY}}
(多个 key 称为 secure
没问题)
下次您的应用程序通过 Travis 时,您应该在配置行上看到:
Env: QINIU_ACCESS_KEY=[secure] QINIU_SECRET_KEY=[secure]
更多可能有帮助的 StackOverflow 问答(它在 Ruby on Rails 上下文中,但它们处理这个问题)在这里:
关于node.js - 如何使用travis-ci的.travis.yml为Node.js应用提供环境参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14471666/