【发布时间】:2020-12-29 20:08:00
【问题描述】:
我的 Github 存储库设置中有 3 个秘密,一个动作 workflow.yml 文件,其中:
...
- name: Uploading to Bintray
env:
s1: ${{ secrets.SECRET_ONE }}
s2: ${{ secrets.SECRET_TWO }}
s3: ${{ secrets.SECRET_THREE }}
run: ./gradlew bintrayUpload
还有我的deploy.gradle:
configure<BintrayExtension> {
var ossPwd = ""
if (project.rootProject.file("local.properties").exists()) {
...
} else {
...
ossPwd = System.getenv("s3") ?: ""
}
pkg.apply {
...
version.apply {
if (ossPwd.isNotEmpty())
mavenCentralSync.apply {
...
password = ossPwd
}
}
}
}
System.getenv("s3") 在正确获取 SECRET_ONE 和 SECRET_TWO 时抛出 null。
有什么原因吗?
编辑:
我刚刚(第 10 次)删除了我的 SECRET_THREE 并创建了另外 2 个秘密。所有 4 个都已找到并正确使用...¯\_(ツ)_/¯
【问题讨论】:
-
环境设置处于步骤级别,因此工作流程中的疑问会被覆盖。请检查您是否正确定义了秘密名称,或在您的运行命令中检查以确保它没有被覆盖。还将 s3 env 重命名为其他名称作为测试。
-
我再次检查了所有机密,包括删除/创建。工作流程最后一步在上面发布,s3 它没有被覆盖。我的
deploy.gradle也不会覆盖 s3。 s1 和 s2 都可以,逻辑一样,太奇怪了……我用更多的代码更新了我的问题。 -
@GuilhE 你能否将
s3设置为System.getenv("s3") ?: "xxx",只是为了仔细检查它是在那里定义的,并且会有一个“xxx”值? -
@GuilhE 确实很奇怪。我已将您的评论包含在答案中以提高知名度。
-
很高兴你明白了。这类问题通常是机密错误。
标签: android gradle yaml github-actions bintray