我有一个数据库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_VARS是否返回true,它是。
我还在travis文档中看到,您还可以在其仪表板中添加环境变量。我在仪表板中添加了键值对作为PROD_DB_URI = MY_DB_URI。特拉维斯再次说它未定义。
我有什么遗失的东西吗?我没有正确访问安全环境变量吗?
答案 0 :(得分:0)
有关详情,请参阅this link。
在env:
- PROD_DB_URI=$PROD_DB_URI
文件中添加:
PROD_DB_URI
应将
date_format
设置为travis中的环境变量