我有一个数据库uri,我想在travis-yml文件中保护它。我遵循travis文档加密以下环境变量:PROD_DB_URI=MY_DB_URI
然后,我将实际数据库文件中的URI替换为我期望访问的新环境变量
这是我添加它的地方:
const Sequelize = require('sequelize');
let privateKey;
if (process.env.PROD_DB_URI) {
privateKey = process.env.PROD_DB_URI;
} else {
privateKey = require('./../../testingKeys.js').dbKey;
}
const DB = new Sequelize(privateKey);
我的travis yml文件如下:
language: node_js
node_js:
- '4'
env:
global:
- CXX=g++-4.8
- secure: s6/R8v6Nxe8Vw0gnge+0/...
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.8
after_success: npm run coverage
我尝试运行travis,但它看不到加密的PROD_DB_URI变量,并表示它未定义。我甚至查看了travis日志,当它导出环境变量时,它不会显示解密的变量。日志显示:
Setting environment variables from .travis.yml
$ export CXX=g++-4.8
没有导出其他变量。我还检查了process.env.TRAVIS_SECURE_env_ARS是否返回true,事实确实如此。
我还在travis文档中看到,您还可以在其面板中添加环境变量。我在仪表板中添加了键值对PROD_DB_URI=MY_DB_URI。Travis再次表示其未定义。
有什么东西我遗漏了吗?我是否未正确访问安全环境变量?
有关更多信息,请参阅此链接。
在.travis.yml
文件中添加:
env:
- PROD_DB_URI=$PROD_DB_URI
应将
PROD_DB_URI
设置为travis 中的环境变量