构建存储在公共库中并需要使用CI的令牌密钥的代码的最佳方法是什么?

问题描述:

我有一个Android项目需要令牌密钥,我将其存储在公共库中。我没有把我的钥匙交给回购。我将我的回购与Travis CI集成起来进行自动化构建。但是,构建过程将失败,因为找不到令牌密钥。我应该如何向CI提供密钥而不将其提交给回购协议?构建存储在公共库中并需要使用CI的令牌密钥的代码的最佳方法是什么?

特拉维斯允许您存储加密的环境变量以准确地应用于此场景。见here

加密环境变量

加密的环境变量与连接到使用travis宝石你的资料库公钥:

  1. 如果你没有在travis宝石安装,运行gem install travis

  2. 在你的资料库目录下,运行:

    travis encrypt MY_SECRET_ENV=super_secret --add env.matrix 
    
  3. 提交更改到您.travis.yml

加密和解密密钥被捆绑到存储库。如果您分派项目并将其添加到Travis CI,它将无法访问加密变量。

加密方案在Encryption keys中有更详细的解释。