我有一个数据库 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。 Travis 再次说它未定义。
有什么我想念的吗?我没有正确访问安全环境变量吗?
最佳答案
有关更多信息,请参阅 this link 。
在您的 .travis.yml
文件中添加:
env:
- PROD_DB_URI=$PROD_DB_URI
关于node.js - 访问 Travis 安全环境变量 Node.js/PostgreSQL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38414245/