Run "bazel test //..." in CI

This will build all buildable targets and test all testable targets.

The hardcoded Harbormaster rules have been removed in Phabricator.

Adds a simple test for booting Smalltown.

BUILD files that are injected into repositories have been renamed to
BUILD.repo to ensure that Bazel does not recognize them as local BUILD
files and attempt to build them.

Test Plan: Covered by CI :)

Bug: T483

X-Origin-Diff: phab/D262
GitOrigin-RevId: 3512a5e13430001f4e6f91d21ac503564c8fb085
diff --git a/core/build/edk2/BUILD.repo b/core/build/edk2/BUILD.repo
new file mode 100644
index 0000000..7911678
--- /dev/null
+++ b/core/build/edk2/BUILD.repo
@@ -0,0 +1,22 @@
+genrule(
+    name = "firmware",
+    srcs = glob(["**"]),
+    outs = [
+        "OVMF_CODE.fd",
+        "OVMF_VARS.fd",
+    ],
+    cmd = """
+    (
+        # The edk2 build does not like Bazel's default genrule environment.
+        set +u
+
+        cd external/edk2
+        . edksetup.sh
+        make -C BaseTools/Source/C
+        build -DTPM2_ENABLE -DSECURE_BOOT_ENABLE -t GCC5 -a X64 -b RELEASE -p $$PWD/OvmfPkg/OvmfPkgX64.dsc
+    ) > /dev/null
+
+    cp external/edk2/Build/OvmfX64/RELEASE_GCC5/FV/{OVMF_CODE.fd,OVMF_VARS.fd} $(RULEDIR)
+    """,
+    visibility = ["//visibility:public"],
+)