examples: add py_wheel test

$ bazel build -c opt ...
Computing main repo mapping:
Loading:
Loading: 0 packages loaded
Analyzing: 7 targets (1 packages loaded, 0 targets configured)
Analyzing: 7 targets (1 packages loaded, 0 targets configured)

ERROR: //examples/basic/BUILD.bazel:11:9: in deps attribute of py_wheel rule //:basic_wheel:
 alias '//:basic' referring to
 generated file '//:basic.pyd' is misplaced here (expected no files).
 Since this rule was created by the macro 'py_wheel',
 the error might have been caused by the macro implementation
ERROR: //examples/basic/BUILD.bazel:11:9: Analysis of target '//:basic_wheel' (config: 307b5b1) failed
Use --verbose_failures to see the command lines of failed build steps.
ERROR: Analysis of target '//:basic_wheel' failed; build aborted
INFO: Elapsed time: 0.334s, Critical Path: 0.02s
INFO: 1 process: 1 internal.
ERROR: Build did NOT complete successfully
diff --git a/examples/basic/BUILD.bazel b/examples/basic/BUILD.bazel
index 797bf56..2846923 100644
--- a/examples/basic/BUILD.bazel
+++ b/examples/basic/BUILD.bazel
@@ -1,18 +1,35 @@
 load("@pybind11_bazel//:build_defs.bzl", "pybind_extension")
 load("@rules_python//python:py_library.bzl", "py_library")
 load("@rules_python//python:py_test.bzl", "py_test")
+load("@rules_python//python:packaging.bzl", "py_wheel")
 
 pybind_extension(
     name = "basic",
     srcs = ["basic.cpp"],
 )
 
+py_wheel(
+  name = "basic_wheel",
+  testonly = True,
+  distribution = "basic",
+  version = "1.0.0",
+  deps = [":basic"],
+)
+
 py_library(
     name = "basic_lib",
     data = [":basic"],
     imports = ["."],
 )
 
+py_wheel(
+  name = "basic_lib_wheel",
+  testonly = True,
+  distribution = "basic_lib",
+  version = "1.0.0",
+  deps = [":basic_lib"],
+)
+
 py_test(
     name = "basic_test",
     srcs = ["basic_test.py"],