Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use travis-ci's .travis.yml to provide environment parameters for Node.js Application?

I use travis-ci to test my node.js application. Because the application need users login with Access Key and Secret Key to test, I need to specify these two keys in travis-ci's .travis.yml file. So How can i do this? And how to get these environment parameters in Node?

Like these two parameters: https://github.com/ikbear/nodejs-sdk/blob/feature/copy_and_move_file/test/rs.test.js#L22

I want to specify them in .travis.yml like this:

language: node_js
node_js:
  - 0.8
  - 0.6
  - 0.4
env:
  - QINIU_ACCESS_KEY = '2FRuiVGEsA511NS9pNd2uvuSB3k5ozXE_DHCH8Ov' QINIU_SECRET_KEY = 'CIRtcmymB3VeIfXebFvYxmMmH9u2oLKW6rffVvoK'

So how can i get QINIU_ACCESS_KEY and QINIU_SECRET_KEY from my this test file? https://github.com/ikbear/nodejs-sdk/blob/feature/copy_and_move_file/test/rs.test.js

like image 392
Ikbear Avatar asked Jan 23 '13 02:01

Ikbear


People also ask

What is Travis Yml and how is it used?

travis. yml is a configuration file, which provides instructions to the testing and building software on how to run tests and build any files required by the project. This file is part of the repository's git repository.


1 Answers

Update: Travis now supports defining variables directly in build respositories via their web user interface. So, unless you have a need to generate local encrypted variables manually for your .travis.yml file (as per original answer below), this seems like the easiest way to get an environment variable working with Travis CI.


I'm not sure of specifics regarding Node.js, but if you want to use QINIU_ACCESS_KEY and QINIU_SECRET_KEY in your .travis.yml without them being plain text, make them secure environment variables:

Step 0: Install the travis gem (Install Rubygems if you haven't got it already; not sure if there's another way to get the travis command or another way to perform Step 1 below):

$ gem install travis

Step 1: Encrypt the values, taking note of the result:

$ travis encrypt QINIU_ACCESS_KEY=2FRuiVGEsA511NS9pNd2uvuSB3k5ozXE_DHCH8Ov
$ travis encrypt QINIU_SECRET_KEY=CIRtcmymB3VeIfXebFvYxmMmH9u2oLKW6rffVvoK

Step 2: Add the values to your .travis.yml file:

env:
  global: 
    - secure: {{ENCRYPTED_QINIU_ACCESS_KEY}}
    - secure: {{ENCRYPTED_QINIU_SECRET_KEY}}

(Multiple keys called secure are no problem)

Next time your app goes through Travis, you should see on the Config line:

Env: QINIU_ACCESS_KEY=[secure] QINIU_SECRET_KEY=[secure]

More StackOverflow Q&As that may be of assistance (it's in a Ruby on Rails context, but they deal with this issue) are here:

  • How to deploy an rails app on heroku from travis-ci?
  • Using secret api keys on travis-ci
like image 181
Paul Fioravanti Avatar answered Sep 18 '22 02:09

Paul Fioravanti