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

Ikb*_*ear 6 environment-variables node.js travis-ci

我使用travis-ci来测试我的node.js应用程序.由于应用程序需要用户使用Access Key和Secret Key进行登录测试,我需要在travis-ci的.travis.yml文件中指定这两个键.那我该怎么做?以及如何在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'
Run Code Online (Sandbox Code Playgroud)

那么如何从我的测试文件中获取QINIU_ACCESS_KEY和QINIU_SECRET_KEY?https://github.com/ikbear/nodejs-sdk/blob/feature/copy_and_move_file/test/rs.test.js

Pau*_*nti 13

更新:Travis现在支持通过其Web用户界面直接在构建存储库中定义变量.因此,除非您需要.travis.yml文件手动生成本地加密变量(根据下面的原始答案),这似乎是使用Travis CI获取环境变量的最简单方法.


我不知道关于Node.js的具体情况,但如果你想使用QINIU_ACCESS_KEY,并QINIU_SECRET_KEY在你的.travis.yml没有他们是纯文本,让他们安全的环境变量:

第0步:安装travis gem(如果你还没有安装Rubygems,请安装Rubygems ;不确定是否有其他方法可以获得travis命令或其他方式执行下面的步骤1):

$ gem install travis
Run Code Online (Sandbox Code Playgroud)

第1步:加密值,记下结果:

$ travis encrypt QINIU_ACCESS_KEY=2FRuiVGEsA511NS9pNd2uvuSB3k5ozXE_DHCH8Ov
$ travis encrypt QINIU_SECRET_KEY=CIRtcmymB3VeIfXebFvYxmMmH9u2oLKW6rffVvoK
Run Code Online (Sandbox Code Playgroud)

第2步:将值添加到.travis.yml文件中:

env:
  global: 
    - secure: {{ENCRYPTED_QINIU_ACCESS_KEY}}
    - secure: {{ENCRYPTED_QINIU_SECRET_KEY}}
Run Code Online (Sandbox Code Playgroud)

(调用多个键secure没问题)

下次您的应用程序通过Travis时,您应该在Config行上看到:

环境:QINIU_ACCESS_KEY = [安全] QINIU_SECRET_KEY = [安全]

更多可能有帮助的StackOverflow Q&As(它在Ruby on Rails上下文中,但它们处理此问题)在这里: