用于 Gradle 发布的 GitLab CI 秘密变量 [英] GitLab CI secret variables for Gradle publish
问题描述
如何使用 GitLab CI 秘密变量设置 Gradle 发布任务用户凭据?我正在使用 gradle maven 发布插件,这里是 build.gradle 的片段
How to setup Gradle publish task user credentials with GitLab CI secret variables? I am using gradle maven publish plugin, and here is snippet from build.gradle
repositories {
maven {
credentials {
username artifactUser
password artifactPass
}
url "..."
}
}
我尝试使用 gradle.properties
如下
artifactUser=${env.MAVEN_REPO_USER}
artifactPass=${env.MAVEN_REPO_PASS}
以及访问 .gitlab-ci.yml
文件中的秘密变量的几种方法(因为 gradle.properties 不是从 gradle 中提取的或者变量没有正确转换,它在根项目目录中)
And several ways of accessing secret variables in .gitlab-ci.yml
file (because gradle.properties is not picked up from gradle or variables are not transformed correctly, it is in root project dir)
方法一
'./gradlew publish -x test -PartifactUser=${env.MAVEN_REPO_USER} -PartifactPass=${env.MAVEN_REPO_PASS}'
错误:/bin/bash:第 56 行:-PartifactUser=${env.MAVEN_REPO_USER}:替换错误
方法二
before_script:
- chmod +x ./gradlew
- export REPO_USER=${env.MAVEN_REPO_USER}
- export REPO_PASS=${env.MAVEN_REPO_PASS}
...
deploy:
stage: deploy
script:
- ./gradlew publish -x test -PartifactUser=$REPO_USER -PartifactPass=$REPO_PASS
我正在使用 openjdk:8-jdk-slim
图像使用 gradle wrapper 进行构建.似乎有几个 问题 使用这种变量,我们有什么解决办法吗?
I am using openjdk:8-jdk-slim
image for build using gradle wrapper. Seems like there are several issues with this kind of variable usage, do we have any workaround?
推荐答案
你的 .gitlab-ci.yml
中不需要 env.
前缀.您也不需要重新导出变量.
You don't need env.
prefinx in your .gitlab-ci.yml
. You don't need to re-export the variables as well.
如果您在项目的 Gitlab CI/CD 设置中定义了名为 MAVEN_REPO_USER
和 MAVEN_REPO_PASS
的变量,则可以在 Gradle 脚本中使用它们:
If you have defined a variables named MAVEN_REPO_USER
and MAVEN_REPO_PASS
in Gitlab CI/CD settings for the project, you can just use them in Gradle script:
repositories {
maven {
credentials {
username System.getenv("MAVEN_REPO_USER")
password System.getenv("MAVEN_REPO_PASS")
}
url "…"
}
}
这篇关于用于 Gradle 发布的 GitLab CI 秘密变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!