mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
This hooks up the bazel build to the robotpyExamples. It can use the (formly pyfrc or whatever) automatic unit tests for an example, as well as exposing the ability to run the example in simulation, with or without `halsim_gui` with a command such as `bazel run //robotpyExamples:AddressableLED-sim` This required building and using wheels instead of just a normal `py_library`, so that things like `ENTRY_POINTS` can be used. I took a bare bones approach to building and naming the wheels (for example the native ones don't have the OS info or python version in them, so they wouldn't be suitable publish to pypi, but that can always be updated later.
92 lines
4.7 KiB
Plaintext
92 lines
4.7 KiB
Plaintext
try-import %workspace%/user.bazelrc
|
|
|
|
common --enable_bzlmod --enable_workspace
|
|
# Resolves to --config=linux on Linux, --config=macos on Mac, --windows on windows
|
|
common --enable_platform_specific_config
|
|
|
|
# Make bazel 8 work for us.
|
|
common --enable_workspace
|
|
build --experimental_cc_static_library
|
|
build --experimental_cc_shared_library
|
|
|
|
build --java_language_version=21
|
|
build --java_runtime_version=remotejdk_21
|
|
build --tool_java_language_version=21
|
|
build --tool_java_runtime_version=remotejdk_21
|
|
|
|
test --test_output=errors
|
|
test --test_verbose_timeout_warnings
|
|
|
|
import %workspace%/shared/bazel/compiler_flags/sanitizers.rc
|
|
import %workspace%/shared/bazel/compiler_flags/linux_flags.rc
|
|
import %workspace%/shared/bazel/compiler_flags/osx_flags.rc
|
|
import %workspace%/shared/bazel/compiler_flags/roborio_flags.rc
|
|
import %workspace%/shared/bazel/compiler_flags/systemcore_flags.rc
|
|
import %workspace%/shared/bazel/compiler_flags/windows_flags.rc
|
|
import %workspace%/shared/bazel/compiler_flags/coverage_flags.rc
|
|
|
|
# Alias toolchain names to what wpilibsuite uses for CI/Artifact naming
|
|
build:athena --config=roborio
|
|
build:linuxarm32 --config=raspibookworm32
|
|
build:linuxarm64 --config=bookworm64
|
|
|
|
build:build_java --test_tag_filters=allwpilib-build-java --build_tag_filters=allwpilib-build-java
|
|
build:build_cpp --test_tag_filters=+allwpilib-build-cpp --build_tag_filters=+allwpilib-build-cpp
|
|
build:no_example --test_tag_filters=-wpi-example --build_tag_filters=-wpi-example
|
|
test:no_example --test_tag_filters=-wpi-example --build_tag_filters=-wpi-example
|
|
common:skip_robotpy --test_tag_filters=-robotpy --build_tag_filters=-robotpy
|
|
|
|
# Build Buddy BES Setup
|
|
build:build_buddy_bes --bes_results_url=https://app.buildbuddy.io/invocation/
|
|
build:build_buddy_bes --bes_backend=grpcs://remote.buildbuddy.io
|
|
|
|
# Common Cache Settings
|
|
build:common_cache --remote_timeout=3600
|
|
build:common_cache --remote_cache_compression
|
|
build:common_cache --experimental_remote_cache_compression_threshold=100
|
|
|
|
# Build Buddy Cache Setup
|
|
build:build_buddy --config=common_cache
|
|
build:build_buddy --config=build_buddy_bes
|
|
build:build_buddy --remote_cache=grpcs://remote.buildbuddy.io
|
|
build:build_buddy --noslim_profile
|
|
build:build_buddy --experimental_profile_include_target_label
|
|
build:build_buddy --experimental_profile_include_primary_output
|
|
build:build_buddy --nolegacy_important_outputs
|
|
|
|
common:build_buddy_readonly --noremote_upload_local_results
|
|
|
|
# Bazel-remote cache setup
|
|
build:remote_cache --config=common_cache
|
|
build:remote_cache --remote_cache=grpcs://gitlib-bazel.wpi.edu
|
|
|
|
common:remote_cache_readonly --noremote_upload_local_results
|
|
|
|
# This config should be used locally. It downloads more than the CI version
|
|
build:remote_user --config=remote_cache
|
|
build:remote_user --config=remote_cache_readonly
|
|
build:remote_user --remote_download_toplevel
|
|
|
|
build:ci --config=remote_cache
|
|
build:ci --remote_download_minimal
|
|
build:ci --progress_report_interval=60 --show_progress_rate_limit=60
|
|
|
|
build --build_metadata=REPO_URL=https://github.com/wpilibsuite/allwpilib.git
|
|
|
|
common --define="WPILIB_VERSION=2025.424242.3.1-unknown"
|
|
common --define="ROBOTPY_VERSION=2025.424242.3.1"
|
|
|
|
# List of artifact types to build in CI.
|
|
# Anything else gets skipped to speed up CI.
|
|
common:ci --repo_env="WPI_PUBLISH_CLASSIFIER_FILTER=headers,sources,linuxsystemcore,linuxsystemcoredebug,linuxsystemcorestatic,linuxsystemcorestaticdebug,linuxx86-64,linuxx86-64debug,linuxx86-64static,linuxx86-64staticdebug,osxuniversal,osxuniversaldebug,osxuniversalstatic,osxuniversalstaticdebug,windowsarm64,windowsarm64debug,windowsarm64static,windowsarm64staticdebug,windowsx86-64,windowsx86-64debug,windowsx86-64static,windowsx86-64staticdebug"
|
|
|
|
# The 2 configurations for windows are very slow to build each time.
|
|
# Instead, skip the cross transition for ARM on x86, and the reverse on x86.
|
|
common:ci_windows_x86 --repo_env="WPI_PUBLISH_CLASSIFIER_FILTER=headers,sources,linuxsystemcore,linuxsystemcoredebug,linuxsystemcorestatic,linuxsystemcorestaticdebug,linuxx86-64,linuxx86-64debug,linuxx86-64static,linuxx86-64staticdebug,osxuniversal,osxuniversaldebug,osxuniversalstatic,osxuniversalstaticdebug,windowsx86-64,windowsx86-64debug,windowsx86-64static,windowsx86-64staticdebug"
|
|
common:ci_windows_arm --repo_env="WPI_PUBLISH_CLASSIFIER_FILTER=headers,sources,linuxsystemcore,linuxsystemcoredebug,linuxsystemcorestatic,linuxsystemcorestaticdebug,linuxx86-64,linuxx86-64debug,linuxx86-64static,linuxx86-64staticdebug,osxuniversal,osxuniversaldebug,osxuniversalstatic,osxuniversalstaticdebug,windowsarm64,windowsarm64debug,windowsarm64static,windowsarm64staticdebug"
|
|
|
|
build --@rules_python//python/config_settings:bootstrap_impl=script
|
|
build --@rules_python//python/config_settings:venvs_use_declare_symlink=no
|
|
|
|
try-import %workspace%/bazel_auth.rc
|