我如何调用存储在詹金斯中的凭据将詹金斯菲尔内部的自定义联系部署到自定义联系



我有一个用于项目相关实用程序罐的自定义联系。我有一个詹金斯来建造这些罐子。

我想在项目中使用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(){}步骤来注入环境变量,这些变量仅在{}块内可见。

最新更新