作者:小胖胖的夢2502895687 | 来源:互联网 | 2022-12-11 23:28
如何使用GitLab CI秘密变量设置Gradle发布任务用户凭证?我正在使用gradle maven publish插件,这是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中拾取gradle.properties或未正确转换变量,因此它位于根项目目录中)
方法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包装器构建图像。此类变量用法似乎存在多个问题,我们有什么解决方法吗?
1> madhead..:
您的不需要env.
prefinx .gitlab-ci.yml
。您也不需要重新导出变量。
如果您已经定义了一个名为的变量MAVEN_REPO_USER
,并MAVEN_REPO_PASS
在Gitlab CI / CD设置的项目,你可以用它们在摇篮脚本:
repositories {
maven {
credentials {
username System.getenv("MAVEN_REPO_USER")
password System.getenv("MAVEN_REPO_PASS")
}
url "…"
}
}