node.js - 如何使用travis-ci的.travis.yml为Node.js应用提供环境参数?

标签 node.js environment-variables travis-ci

我使用 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/

相关文章:

css - Bootstrap 响应式导航栏在浏览器中缩放时有效,但在我的手机上无效

linux - 我们可以为正在运行的程序设置 LD_PRELOAD 环境变量吗?

android - Travis 无法构建 Android 项目,没有 local.properties

ssh - 我可以从指纹生成完整的公钥吗?

node.js - 如何在 Node.js 中拦截 fs.createWriteStream 的回调

node.js - 使用 lerna 类型-graphql --- 错误 : Cannot determine GraphQL output type for id

node.js - 从mongodb中的嵌套数组获取数据

c++ - 如何在 Windows 中使用与父进程相同的环境变量加上它自己的子进程?

swift - 在 Swift 中引用环境变量

go - Travis CI 找不到 GitHub 部署的发布文件