Publish top level Maven POMs as part of release build
Change-Id: I6e10d4af4d8b59e3f5e15f001d160838a3c35266
diff --git a/BUCK b/BUCK
index a16a273..773e0c6 100644
--- a/BUCK
+++ b/BUCK
@@ -58,3 +58,13 @@
'tools/build/envDefaults'
],
)
+
+only_lib_dep_pom(
+ name = 'top-level-pom',
+ src = 'pom.xml',
+ out = 'onos.pom',
+)
+
+
+
+
diff --git a/bucklets/onos.bucklet b/bucklets/onos.bucklet
index 16d0b52..f141e85 100644
--- a/bucklets/onos.bucklet
+++ b/bucklets/onos.bucklet
@@ -325,3 +325,44 @@
out = out if out is not None else ( root if root is not None else name ) + '.tar.gz',
visibility = visibility,
)
+
+def only_lib_dep_pom(
+ name,
+ src,
+ out,
+ version = ONOS_VERSION,
+ onosGroupId = ONOS_GROUP_ID,
+ visibility = [ 'PUBLIC' ],
+ ):
+
+ cmd = 'grep -v \<module\> ' + src + ' | sed "s/\<modules\>/\<\modules\>\<module\>lib\<\/module\>/" >$OUT'
+
+ genrule(
+ name = name,
+ srcs = [ src ],
+ bash = cmd,
+ out = out,
+ visibility = visibility,
+ maven_coords = onosGroupId + ':onos:pom:' + version,
+ )
+
+def pass_thru_pom(
+ name,
+ src,
+ out,
+ artifactId,
+ version = ONOS_VERSION,
+ onosGroupId = ONOS_GROUP_ID,
+ visibility = [ 'PUBLIC' ],
+ ):
+
+ cmd = 'cp ' + src + ' $OUT'
+
+ genrule(
+ name = name,
+ srcs = [ src ],
+ bash = cmd,
+ out = out,
+ visibility = visibility,
+ maven_coords = onosGroupId + ':' + artifactId + ':pom:' + version,
+ )
diff --git a/lib/BUCK b/lib/BUCK
index c357a13..abb2826 100644
--- a/lib/BUCK
+++ b/lib/BUCK
@@ -1,5 +1,13 @@
-# ***** This file was auto-generated at Thu Jan 26 15:48:58 PST 2017. Do not edit this file manually. *****
+# ***** This file was auto-generated at Thu Jan 26 16:50:25 PST 2017. Do not edit this file manually. *****
# ***** Use onos-lib-gen *****
+
+pass_thru_pom(
+ name = 'onos-dependencies-pom',
+ src = 'pom.xml',
+ out = 'onos-dependencies.pom',
+ artifactId = 'onos-dependencies',
+)
+
osgi_feature_group(
name = 'COMPILE',
visibility = ['PUBLIC'],
diff --git a/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckLibGenerator.java b/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckLibGenerator.java
index 5b67a5c..f05593d 100644
--- a/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckLibGenerator.java
+++ b/tools/build/libgen/src/main/java/org/onosproject/libgen/BuckLibGenerator.java
@@ -175,6 +175,16 @@
"# ***** This file was auto-generated at %s. Do not edit this file manually. *****\n",
new Date().toString()));
writer.write("# ***** Use onos-lib-gen *****\n");
+
+ // rule to publish the onos dependency pom
+ writer.write("\npass_thru_pom( \n" +
+ " name = 'onos-dependencies-pom',\n" +
+ " src = 'pom.xml',\n" +
+ " out = 'onos-dependencies.pom',\n" +
+ " artifactId = 'onos-dependencies',\n" +
+ ")\n\n");
+
+
libraries.forEach(library -> writer.print(library.getBuckFragment()));
artifacts.forEach(artifact -> writer.print(artifact.getBuckFragment()));
writer.flush();
diff --git a/tools/build/onos-buck-publish b/tools/build/onos-buck-publish
index 0d82c1c..2b137f8 100755
--- a/tools/build/onos-buck-publish
+++ b/tools/build/onos-buck-publish
@@ -39,5 +39,9 @@
cat $TEST_PUB
bash $TEST_PUB
+# stage ONOS poms
+onos-buck publish --to-maven-central --sign //:top-level-pom
+onos-buck publish --to-maven-central --sign //lib:onos-dependencies-pom
+
# Close the staging area
onos-close-staging