| #!/bin/bash |
| # ----------------------------------------------------------------------------- |
| # Generates a catalog for publishing ONOS artifacts to a Maven repository. |
| # ----------------------------------------------------------------------------- |
| |
| set -e -o pipefail |
| |
| CATALOG=${1:-/tmp/onos.catalog} |
| |
| rm -f $CATALOG |
| |
| # Required to avoid having Bazel re-build stuff unnecessarily |
| export SHLVL=1 |
| |
| function writeCatalog { |
| bazel build $* --aspects tools/build/bazel/publish_catalog.bzl%publish_catalog 2>&1 \ |
| | egrep "^DEBUG: " | cut -d\ -f3- >> $CATALOG |
| } |
| |
| function jars { |
| egrep -v '(\# |grpc/api|build/conf)' tools/build/publish-target-list |
| } |
| |
| function testJars { |
| egrep -v '(# |grpc/api|build/conf)' tools/build/publish-test-target-list |
| } |
| |
| # Extract the version from the Bazel variables file |
| VERSION=$(egrep ONOS_VERSION tools/build/bazel/variables.bzl | cut -d\" -f2) |
| |
| # Inject the onos-dependencies pom, ONOS tar, admin tar and test tar. |
| echo "Cataloging tar files..." |
| cat >> $CATALOG <<EOF |
| lib/pom.xml org/onosproject/onos-dependencies/$VERSION/onos-dependencies-$VERSION.pom |
| bazel-bin/onos.tar.gz org/onosproject/onos-releases/$VERSION/onos-$VERSION.tar.gz |
| bazel-bin/onos-admin.tar.gz org/onosproject/onos-releases/$VERSION/onos-admin-$VERSION.tar.gz |
| bazel-bin/onos-test.tar.gz org/onosproject/onos-releases/$VERSION/onos-test-$VERSION.tar.gz |
| EOF |
| |
| echo "Cataloging jar files..." |
| writeCatalog $(jars) |
| |
| echo "Cataloging test jars..." |
| writeCatalog $(testJars) |
| |
| echo "Cataloging source jars..." |
| writeCatalog $(jars | sed 's/$/-sources/') |
| echo "Cataloging javadoc jars..." |
| writeCatalog $(jars | sed 's/$/-javadoc/') |
| echo "Cataloging pom files..." |
| writeCatalog $(jars | sed 's/$/-pom/') |
| |
| echo "Cataloging oar files..." |
| writeCatalog $(bazel query 'kind("_onos_oar rule", //...)') |