Github 操作:无法访问属性文件中的值
Posted
技术标签:
【中文标题】Github 操作:无法访问属性文件中的值【英文标题】:Github Actions: Can not acces values in properties file 【发布时间】:2021-10-22 18:32:20 【问题描述】:我在访问 build.gradle 文件中的秘密变量时遇到了一些问题。我在 Github repo 设置中定义了两个秘密:PUBLIC_API_KEY 和 PRIVATE_API_KEY
在我的 actions.yml 文件中,我从秘密中读取它们,解码并写入 apikey.properties 文件
name: My fancy app
on: [ push, pull_request ]
defaults:
run:
shell: bash
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Clone Repo
uses: actions/checkout@v1
- name: Acces API Public Key
env:
PUBLIC_API_KEY: $ secrets.PUBLIC_API_KEY
run: echo "$PUBLIC_API_KEY" | base64 -d > ./apikey.properties
- name: Acces API Private Key
env:
PRIVATE_API_KEY: $ secrets.PRIVATE_API_KEY
run: echo "$PRIVATE_API_KEY" | base64 -d > ./apikey.properties
在我的 build.gradle 中,我从 apikey.properties 文件创建了一个属性对象,并尝试读取在上一步中保存的变量。这就是我的 build.gradle 文件中的样子
def apikeyPropertiesFile = rootProject.file("apikey.properties")
def apikeyProperties = new Properties()
try
apikeyProperties.load(new FileInputStream(apikeyPropertiesFile))
println("Private Key value" + apikeyProperties['PRIVATE_API_KEY'])
println("Public Key value" + apikeyProperties['PUBLIC_API_KEY'])
catch(Exception exception)
println("Error by loading properties file" + exception.message)
....
buildConfigField("String", "PRIVATE_API_KEY", apikeyProperties['PRIVATE_API_KEY'])
buildConfigField("String", "PUBLIC_API_KEY", apikeyProperties['PUBLIC_API_KEY'])
构建失败,因为两个 apiKeyProperties 值均为空。
谁能告诉我,为什么这些值为空?
【问题讨论】:
【参考方案1】:感谢this 的帖子,我发现 apikey.properties 文件中缺少密钥。这就是我的修复的样子:
....
- name: Acces API Keys
run: |
touch apikey.properties
echo PUBLIC_API_KEY=$ secrets.PUBLIC_API_KEY >> apikey.properties
echo PRIVATE_API_KEY=$ secrets.PRIVATE_API_KEY >> apikey.properties
cat apikey.properties
...
【讨论】:
以上是关于Github 操作:无法访问属性文件中的值的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 github 操作部署 aws beanstalk,获得 s3 访问被拒绝错误
错误记录GitHub 网站和仓库无法访问 ( 域名重定向 | 检查 C:WindowsSystem32driversetchosts 配置文件中的 GitHub 地址域名配置 )