Extend uploadImageToArtifactory function
We need to publish BuildInfo object as well (as for binary) for
docker images.
1. Replace:
String artifactoryURL
by
ArtifactoryServer server
2. If buildInfo is defined, let's publish it to artifactory
Change-Id: Iadb724307b81a8f40cf1852b909bbb25208dc143
diff --git a/src/com/mirantis/mcp/MCPArtifactory.groovy b/src/com/mirantis/mcp/MCPArtifactory.groovy
index 9e1db78..fc999c0 100644
--- a/src/com/mirantis/mcp/MCPArtifactory.groovy
+++ b/src/com/mirantis/mcp/MCPArtifactory.groovy
@@ -120,14 +120,17 @@
/**
* Upload docker image to Artifactory
*
- * @param artifactoryURL String, an URL to Artifactory
+ * @param server ArtifactoryServer, the instance of Artifactory server
* @param registry String, the name of Docker registry
* @param image String, Docker image name
* @param version String, Docker image version
* @param repository String, The name of Artifactory Docker repository
+ * @param buildInfo BuildInfo, the instance of a build-info object which can be published,
+ * if defined, then we publish BuildInfo
*/
-def uploadImageToArtifactory (String artifactoryURL, String registry, String image,
- String version, String repository) {
+def uploadImageToArtifactory (ArtifactoryServer server, String registry, String image,
+ String version, String repository,
+ BuildInfo buildInfo = null) {
// TODO Switch to Artifactoy image' pushing mechanism once we will
// prepare automatical way for enabling artifactory build-proxy
//def artDocker
@@ -143,7 +146,7 @@
sh ("docker push ${registry}/${image}:${version}")
//artDocker.push("${registry}/${image}:${version}", "${repository}")
- def image_url = "${artifactoryURL}/api/storage/${repository}/${image}/${version}"
+ def image_url = server.getUrl() + "/api/storage/${repository}/${image}/${version}"
def properties = [
'com.mirantis.buildName':"${env.JOB_NAME}",
@@ -157,6 +160,15 @@
]
setProperties(image_url, properties)
+
+ if ( buildInfo != null ) {
+ buildInfo.env.capture = true
+ buildInfo.env.filter.addInclude("*")
+ buildInfo.env.filter.addExclude("*PASSWORD*")
+ buildInfo.env.filter.addExclude("*password*")
+ buildInfo.env.collect()
+ server.publishBuildInfo(buildInfo)
+ }
}
/**