blob: 49aabfa9f100de4401e87b920e53554e0c36c4b4 [file] [log] [blame]
load("//tools/build/bazel:variables.bzl", "ONOS_VERSION")
load("//tools/build/bazel:modules.bzl", "APPS", "CORE", "FEATURES")
filegroup(
name = "onos",
srcs = CORE + APPS + [
"//tools/build/conf:onos-build-conf",
":onos-package-admin",
":onos-package-test",
":onos-package",
],
visibility = ["//visibility:public"],
)
KARAF = "@apache_karaf//:apache_karaf"
BRANDING = "//tools/package/branding:onos-tools-package-branding"
# Generates auxiliary karaf.zip file; branded and augmented with ONOS runtime tools
genrule(
name = "onos-karaf",
srcs = [
KARAF,
BRANDING,
] + glob([
"tools/package/bin/*",
"tools/package/etc/*",
"tools/package/init/*",
"tools/package/runtime/bin/*",
]),
outs = ["karaf.zip"],
cmd = "$(location tools/package/onos-prep-karaf) $(location karaf.zip) $(location %s) %s $(location %s) '' tools/package" %
(KARAF, ONOS_VERSION, BRANDING),
tools = ["tools/package/onos-prep-karaf"],
)
# Generates the principal onos.tar.gz bundle
genrule(
name = "onos-package",
srcs = [
"//tools/package/features:onos-features",
":onos-karaf",
] + APPS + FEATURES,
outs = ["onos.tar.gz"],
cmd = "$(location tools/package/onos_stage.py) $(location onos.tar.gz) %s $(location :onos-karaf) $(SRCS)" % ONOS_VERSION,
output_to_bindir = True,
tags = ["local"],
tools = ["tools/package/onos_stage.py"],
)
# Generates the minimal onos-minimal.tar.gz bundle
genrule(
name = "onos-package-minimal",
srcs = [
"//tools/package/features:onos-features",
":onos-karaf",
"//drivers/default:onos-drivers-default-oar",
] + FEATURES,
outs = ["onos-minimal.tar.gz"],
cmd = "$(location tools/package/onos_stage.py) $(location onos-minimal.tar.gz) %s $(location :onos-karaf) $(SRCS)" % ONOS_VERSION,
output_to_bindir = True,
tags = ["local"],
tools = ["tools/package/onos_stage.py"],
)
# Generates SEBA-specific onos-seba.tar.gz bundle
genrule(
name = "onos-package-seba",
srcs = [
"//tools/package/features:onos-features",
":onos-karaf",
"//drivers/default:onos-drivers-default-oar",
"//apps/optical-model:onos-apps-optical-model-oar",
"//providers/openflow/app:onos-providers-openflow-app-oar",
"//providers/openflow/base:onos-providers-openflow-base-oar",
"//providers/host:onos-providers-host-oar",
"//providers/lldp:onos-providers-lldp-oar",
"//apps/mcast:onos-apps-mcast-oar",
"//providers/netcfghost:onos-providers-netcfghost-oar",
"//apps/segmentrouting:onos-apps-segmentrouting-oar",
"//apps/route-service:onos-apps-route-service-oar",
] + FEATURES,
outs = ["onos-seba.tar.gz"],
cmd = "$(location tools/package/onos_stage.py) $(location onos-seba.tar.gz) %s $(location :onos-karaf) $(SRCS)" % ONOS_VERSION,
output_to_bindir = True,
tags = ["local"],
tools = ["tools/package/onos_stage.py"],
)
# Generates the onos-admin.tar.gz file with remote admin tools
genrule(
name = "onos-package-admin",
srcs = glob([
"tools/package/runtime/bin/*",
"tools/dev/bin/onos-create-app",
"tools/test/bin/onos",
]),
outs = ["onos-admin.tar.gz"],
cmd = "mkdir onos-admin-%s; cp $(SRCS) onos-admin-%s; tar hzcf $(location onos-admin.tar.gz) onos-admin-%s" %
(ONOS_VERSION, ONOS_VERSION, ONOS_VERSION),
output_to_bindir = True,
)
# Generates the onos-test.tar.gz file with test tools
genrule(
name = "onos-package-test",
srcs = glob([
"tools/build/envDefaults",
"tools/dev/bash_profile",
"tools/dev/bin/onos-create-app",
"tools/test/**/*",
"tools/package/runtime/bin/*",
]),
outs = ["onos-test.tar.gz"],
cmd = "mkdir onos-test-%s; cp -r tools onos-test-%s; tar hzcf $(location onos-test.tar.gz) onos-test-%s" %
(ONOS_VERSION, ONOS_VERSION, ONOS_VERSION),
output_to_bindir = True,
)
# Runs ONOS as a single instance from the /tmp directory
alias(
name = "onos-local",
actual = select({
":run_with_absolute_javabase": ":onos-local_absolute-javabase",
"//conditions:default": ":onos-local_current-jdk",
}),
)
config_setting(
name = "run_with_absolute_javabase",
define_values = {
"RUN_WITH_ABSOLUTE_JAVABASE": "true",
},
)
# Run onos-local with JAVA_HOME set to ABSOLUTE_JAVABASE (see .bazelrc)
genrule(
name = "onos-local_absolute-javabase",
srcs = [":onos-local-base"],
outs = ["onos-runner_absolute-javabase"],
cmd = "sed \"s#ABSOLUTE_JAVABASE=#ABSOLUTE_JAVABASE=$(ABSOLUTE_JAVABASE)#\" " +
"$(location onos-local-base) > $(location onos-runner_absolute-javabase)",
executable = True,
output_to_bindir = True,
visibility = ["//visibility:private"],
)
# Run onos-local with the same JDK used for the build, packaged in a tarball.
genrule(
name = "onos-local_current-jdk",
srcs = [
":onos-local-base",
"//tools/build/jdk:current_jdk_tar",
],
outs = ["onos-runner_current-jdk"],
cmd = "sed \"s#JDK_TAR=#JDK_TAR=$(location //tools/build/jdk:current_jdk_tar)#\" " +
"$(location :onos-local-base) > $(location onos-runner_current-jdk); ",
executable = True,
output_to_bindir = True,
visibility = ["//visibility:private"],
)
# Create an onos-runner script based on onos-run-karaf
genrule(
name = "onos-local-base",
srcs = [
":onos-package",
"tools/package/onos-run-karaf",
] + glob(["tools/package/config/**"]),
outs = ["onos-runner"],
cmd = "sed \"s#ONOS_TAR=#ONOS_TAR=$(location :onos-package)#\" " +
"$(location tools/package/onos-run-karaf) > $(location onos-runner); " +
"chmod +x $(location onos-runner)",
visibility = ["//visibility:private"],
)
load("@com_github_bazelbuild_buildtools//buildifier:def.bzl", "buildifier")
buildifier(
name = "buildifier_check",
exclude_patterns = [
"./tools/build/bazel/generate_workspace.bzl",
"./web/gui2-fw-lib/node_modules/@angular/bazel/src/esm5.bzl",
],
mode = "check",
)
buildifier(
name = "buildifier_fix",
exclude_patterns = [
"./tools/build/bazel/generate_workspace.bzl",
"./web/gui2-fw-lib/node_modules/@angular/bazel/src/esm5.bzl",
],
mode = "fix",
)
# This export allows targets in other packages to reference files that live
# in this package.
# TODO Try to move this in to /web/gui2-fw-lib when possible
exports_files([
"tsconfig.json",
])