用于Gradle的GitLab CI秘密变量发布 [英] GitLab CI secret variables for Gradle publish
问题描述
如何使用GitLab CI秘密变量设置Gradle发布任务用户凭证?我正在使用 gradle maven publish插件,这是来自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)
方法1
'./gradlew publish -x test -PartifactUser=${env.MAVEN_REPO_USER} -PartifactPass=${env.MAVEN_REPO_PASS}'
错误:/bin/bash: line 56: -PartifactUser=${env.MAVEN_REPO_USER}: bad substitution
方法2
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包装器进行构建.似乎有几种问题具有这种可变用法,我们有什么解决方法吗?
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.
prefinx.您也不需要重新导出变量.
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屋!