6

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

Paul Fioravanti
  • 16,423
  • 7
  • 71
  • 122
Ikbear
  • 1,267
  • 3
  • 15
  • 17

2 Answers2

13

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:

Community
  • 1
  • 1
Paul Fioravanti
  • 16,423
  • 7
  • 71
  • 122
  • Great and complete answer! If you need to set many secure environment variables, it my be easier to do in the `.travis.yml` file. I have a lot of env vars in a `.env` file and built a ruby script to iterate over them and run the travis command over it. A bit easier than copy pasting them in travis web interface. – lacostenycoder Mar 31 '17 at 20:28
0

Read here (Using Environment Variables with Travis-CI!) --> https://github.com/dwyl/learn-environment-variables#using-environment-variables-with-travis-ci-

Also, to learn more about Travis, read here (Learn Travis) --> https://github.com/dwyl/learn-travis

Cameron
  • 2,427
  • 1
  • 22
  • 27