我有一个数据库 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/

10-16 17:25