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

我使用travis-ci来testing我的node.js应用程序。 因为应用程序需要使用Access Key和Secret Key进行login才能testing,所以我需要在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' 

那么我怎么能从我的这个testing文件中得到QINIU_ACCESS_KEY和QINIU_SECRET_KEY? https://github.com/ikbear/nodejs-sdk/blob/feature/copy_and_move_file/test/rs.test.js

更新 :Travis现在支持通过他们的Web用户界面直接在构build资源库中定义variables 。 所以,除非你需要为你的.travis.yml文件手动生成本地的encryptionvariables (如下面的原始答案),这似乎是获得环境variables与Travis CI一起工作的最简单的方法。


我不确定关于Node.js的具体情况,但是如果你想在你的.travis.yml中使用QINIU_ACCESS_KEYQINIU_SECRET_KEY而不是纯文本,那么使它们成为安全的环境variables :

步骤0:安装travis gem(如果你还没有安装,请安装Rubygems ;不知道是否有另外一种方法来获取travis命令或者执行下面第一步的其他方法):

 $ gem install travis 

步骤1:encryption值,注意结果:

 $ 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}} 

(多个密钥称为secure没有问题)

下次你的应用程序通过特拉维斯,你应该看到在configuration线上:

Env:QINIU_ACCESS_KEY = [安全] QINIU_SECRET_KEY = [安全]

更多的StackOverflow问题和解答可能有帮助(这是在Ruby on Rails的上下文,但他们处理这个问题)在这里:

  • 如何在travis-ci上部署heroku上的rails应用程序?
  • 使用travis-ci上的秘密API键

在这里阅读(使用环境variables与Travis-CI!) – > https://github.com/dwyl/learn-environment-variables#using-environment-variables-with-travis-ci-

此外,要了解更多关于特拉维斯,请阅读(学习特拉维斯) – > https://github.com/dwyl/learn-travis