我有一个用于项目相关实用程序罐的自定义联系。我有一个詹金斯来建造这些罐子。
我想在项目中使用gradle和jenkinsfile来定义管道。作为最后阶段,我希望构建工作将工件部署到我的Nexus。
由于我不希望源存储库中的Nexus的凭据(因此,Gradle脚本或JenkinsFile中都不适用),因此我在Jenkins凭据插件中设置了一个凭证条目,其中包含用户和密码nexus。
如何从jenkinsfile内部参考这些凭据,以便我可以使用它们部署到Nexus?
目前,我的部署阶段看起来像这样:
stage('Publish') {
sh "gradle upload"
}
我可以完全将gradle用于此目的吗?我知道我可以在本地使用它,但是我可以在jenkinsfile内使用其他命令。
在Gradle中,我用它来定义任务:
def nexusUser = "$System.env.NEXUS_USER"
def nexusPass = "$System.env.NEXUS_PASS"
uploadArchives {
repositories {
mavenDeployer {
repository(url: "http://nexus.example.com/repository/maven-releases/") {
authentication(userName: nexusUser, password: nexusPass)
}
}
}
}
(我将用户和密码设置为当地的环境变量。当然,这不是詹金斯的选项。)
您可以在〜/.gradle/gradle.properties 中设置外部变量
nexusUser=superuser
nexusPass=superpassword
您可以使用withCredentials(){}步骤来注入环境变量,这些变量仅在{}
块内可见。