Kio*_*tch 8 continuous-integration android gradle circleci
我正在为Android项目设置Circle CI构建,并且想知道如何将gradle.properties文件添加到我的项目构建中.我使用本地gradle.properties来存储我的API密钥和敏感数据.其他CI工具(即Jenkins)允许您上传gradle.properties文件以在所有版本中使用,但我无法在Circle CI中找到这样做的方法.
似乎环境变量是Circle CI允许您向项目添加秘密凭据的唯一方式.
有没有办法在Circle CI构建中使用gradle.properties中的凭据?
Kio*_*tch 12
我找到了一种gradle.properties通过Circle CI 添加凭证/ API密钥的方法.它允许Android项目以gradle.properties相同的方式为本地和CircleCI构建引用凭据.
第一步,将您的凭据存储在Circle CI项目设置中作为环境变量,这些变量保证是私有的.在Circle CI GUI中,转到您的项目,然后选择右上角的"项目设置".在左侧的菜单中,单击"Tweaks"标题下的"Environment variables".您可以在此处将凭据添加为名称值对.
接下来,在Android项目中创建一个bash脚本,将您的Circle CI环境变量写入本地gradle.properties文件.我已经写了这样一个脚本,并在此作为要点发布.这是完成工作的方法:
function copyEnvVarsToGradleProperties {
GRADLE_PROPERTIES=$HOME"/.gradle/gradle.properties"
export GRADLE_PROPERTIES
echo "Gradle Properties should exist at $GRADLE_PROPERTIES"
if [ ! -f "$GRADLE_PROPERTIES" ]; then
echo "Gradle Properties does not exist"
echo "Creating Gradle Properties file..."
touch $GRADLE_PROPERTIES
echo "Writing TEST_API_KEY to gradle.properties..."
echo "TEST_API_KEY=$TEST_API_KEY_ENV_VAR" >> $GRADLE_PROPERTIES
fi
}
Run Code Online (Sandbox Code Playgroud)
此脚本仅在Circle CI构建期间调用,而不是在本地构建期间调用.在circle.yml文件中调用此脚本作为预处理依赖项,以便gradle.properties在实际的gradle构建开始之前编写:
dependencies:
pre:
- source environmentSetup.sh && copyEnvVarsToGradleProperties
Run Code Online (Sandbox Code Playgroud)
您将继续像以前一样访问build.gradle中的API密钥:
buildConfigField("String", "THIS_TEST_API_KEY", "\"" + TEST_API_KEY + "\"")
小智 5
将中的所有属性添加gradle.properties到CircleCI“环境变量”中,但在它们前面添加:
ORG_GRADLE_PROJECT_
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1645 次 |
| 最近记录: |