import lib
-from deb import build as build_deb
-from rpm import build as build_rpm
+from deb import lib as deb_lib
+from rpm import lib as rpm_lib
if __name__ == "__main__":
# Accept a build definition via args
direct_parser._optionals.title = "Options"
- # Direct builds require a archive URL
+ # Direct builds require an archive URL
direct_parser.add_argument("--download_url", required=True,
help="URL to tar/zip build archive to package")
+ direct_parser.add_argument(
+ "--pkg_version", help="Override autodetected package component of RPM version (maj.min.pat-pkg)'")
# Create subparser for building latest snapshot from a given branch
latest_snap_parser = subparsers.add_parser(
# Build definition, populated below
build = {}
- # Add changelog name/email to build definition
- build.update({"changelog_name": args.changelog_name,
- "changelog_email": args.changelog_email})
+ # Add changelog name to build definition
+ if not args.changelog_name:
+ # If empty string passed, as happens when a bash script calls this
+ # script with unset var, use default
+ build.update({"changelog_name": "Jenkins"})
+ else:
+ build.update({"changelog_name": args.changelog_name})
+
+ # Add changelog email to build definition
+ if not args.changelog_email:
+ # If empty string passed, as happens when a bash script calls this
+ # script with unset var, use default
+ build.update(
+ {"changelog_email": "jenkins-donotreply@opendaylight.org"})
+ else:
+ build.update({"changelog_email": args.changelog_email})
# Depending on pkg type, add appropriate-format changelog date to build def
if args.rpm:
# If doing a latest-snap build, find latest build tarball URL for given
# major version and add to build definition. Else, add URL directly.
if hasattr(args, "major"):
- # FIXME: In the process of removing minor_version, pass None for now
- build.update({"download_url": lib.get_snap_url(args.major, None)})
+ build.update({"download_url": lib.get_snap_url(args.major)})
else:
build.update({"download_url": args.download_url})
# Use download_url to find pkg version, add to build def
build.update(lib.extract_version(build["download_url"]))
+ # Override automatically extracted package version with param if passed
+ if (hasattr(args, "pkg_version") and args.pkg_version is not None and
+ args.pkg_version is not ""):
+ build['pkg_version'] = args.pkg_version
+
# Karaf 3 distros use distribution-karaf-, Karaf 4 uses karaf-
build.update({"distro_name_prefix": lib.get_distro_name_prefix(
- build['version_major'])})
+ build['version_major'], build['download_url'])})
# Update build definition with Java version required by ODL version
build.update({"java_version": lib.get_java_version(
# Use package-specific helper logic to do the specified build
if args.rpm:
- build_rpm.build_rpm(build)
+ rpm_lib.build_rpm(build)
elif args.deb:
- build_deb.build_deb(build)
+ deb_lib.build_deb(build)