[hal, wpilib] Add DS OpMode support #4645
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Bazel | |
| on: [pull_request, push] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - { name: "Linux System Core", classifier: "linuxsystemcore", os: ubuntu-24.04, container: "wpilib/systemcore-cross-ubuntu:2027-24.04", action: "build" } | |
| - { name: "Linux System Core Debug", classifier: "linuxsystemcoredebug", os: ubuntu-24.04, container: "wpilib/systemcore-cross-ubuntu:2027-24.04", action: "build" } | |
| - { name: "Linux System Core Static", classifier: "linuxsystemcorestatic", os: ubuntu-24.04, container: "wpilib/systemcore-cross-ubuntu:2027-24.04", action: "build" } | |
| - { name: "Linux System Core Static Debug", classifier: "linuxsystemcorestaticdebug", os: ubuntu-24.04, container: "wpilib/systemcore-cross-ubuntu:2027-24.04", action: "build" } | |
| - { name: "Linux x86-64", classifier: "linuxx86-64,headers,sources", os: ubuntu-24.04, container: "wpilib/systemcore-cross-ubuntu:2027-24.04", action: "test" } | |
| - { name: "Linux x86-64 Debug", classifier: "linuxx86-64debug", os: ubuntu-24.04, container: "wpilib/systemcore-cross-ubuntu:2027-24.04", action: "test" } | |
| - { name: "Linux x86-64 Static", classifier: "linuxx86-64static", os: ubuntu-24.04, container: "wpilib/systemcore-cross-ubuntu:2027-24.04", action: "test" } | |
| - { name: "Linux x86-64 Static Debug", classifier: "linuxx86-64staticdebug", os: ubuntu-24.04, container: "wpilib/systemcore-cross-ubuntu:2027-24.04", action: "test" } | |
| - { name: "macOS", classifier: "osxuniversal,osxuniversaldebug,headers,sources,osxuniversalstatic,osxuniversalstaticdebug,linuxsystemcore,linuxsystemcoredebug,linuxsystemcorestatic,linuxsystemcorestaticdebug", os: macOS-15, action: "test" } | |
| - { name: "Windows x86-64", classifier: "windowsx86-64,windowsx86-64debug,headers,sources", os: windows-2022, action: "test" } | |
| - { name: "Windows x86-64 Static", classifier: "windowsx86-64static,windowsx86-64staticdebug", os: windows-2022, action: "test" } | |
| - { name: "Windows ARM64", classifier: "windowsarm64,windowsarm64debug", os: windows-2022, action: "build" } | |
| - { name: "Windows ARM64 Static", classifier: "windowsarm64static,windowsarm64staticdebug", os: windows-2022, action: "build" } | |
| - { name: "Windows System Core", classifier: "linuxsystemcore,linuxsystemcoredebug", os: windows-2022, action: "build" } | |
| - { name: "Windows System Core Static", classifier: "linuxsystemcorestatic,linuxsystemcorestaticdebug", os: windows-2022, action: "build" } | |
| name: "${{ matrix.action == 'test' && 'Test' || 'Build' }} ${{ matrix.name }}" | |
| runs-on: ${{ matrix.os }} | |
| container: ${{ matrix.container }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: { fetch-depth: 0 } | |
| - if: matrix.os == 'windows-2022' || matrix.os == 'macOS-15' | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'temurin' | |
| java-version: 21 | |
| architecture: x64 | |
| - if: matrix.os == 'ubuntu-24.04' | |
| uses: bazelbuild/setup-bazelisk@v3 | |
| - id: Setup_bazel_remote | |
| uses: ./.github/actions/setup-bazel-remote | |
| with: | |
| username: ${{ secrets.BAZEL_CACHE_USERNAME }} | |
| password: ${{ secrets.BAZEL_CACHE_PASSWORD }} | |
| - if: matrix.os == 'ubuntu-24.04' | |
| uses: bazel-contrib/[email protected] | |
| with: | |
| bazelisk-cache: true | |
| repository-cache: true | |
| bazelisk-version: 1.x | |
| - name: bazel ${{ matrix.action }} | |
| run: | | |
| if [[ "${{ matrix.os }}" == "windows-2022" ]]; then | |
| bazel --output_user_root=C:\\bazelroot ${{ matrix.action }} ... --config=ci -c opt --repo_env=WPI_PUBLISH_CLASSIFIER_FILTER='${{ matrix.classifier }}' | |
| elif [[ "${{ matrix.os }}" == "macOS-15" ]]; then | |
| bazel ${{ matrix.action }} ... --config=ci -c opt --nojava_header_compilation --repo_env=WPI_PUBLISH_CLASSIFIER_FILTER='${{ matrix.classifier }}' | |
| else | |
| bazel ${{ matrix.action }} ... --config=ci -c opt --repo_env=WPI_PUBLISH_CLASSIFIER_FILTER='${{ matrix.classifier }}' | |
| fi | |
| shell: bash | |
| - name: Free Space | |
| if: always() | |
| shell: bash | |
| run: | | |
| if [[ "${{ matrix.os }}" == "windows-2022" ]]; then | |
| fsutil volume diskfree C: | |
| else | |
| df -h / | |
| fi | |
| buildifier: | |
| name: "buildifier" | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Set up Go 1.15.x | |
| uses: actions/setup-go@v5 | |
| with: | |
| cache: false | |
| go-version: 1.15.x | |
| id: go | |
| - name: Install Buildifier | |
| run: | | |
| cd $(mktemp -d) | |
| GO111MODULE=on go get github.com/bazelbuild/buildtools/[email protected] | |
| - uses: actions/checkout@v4 | |
| with: { fetch-depth: 0 } | |
| - name: Run buildifier | |
| run: buildifier -warnings all --lint=fix -r . | |
| - name: Check Output | |
| run: git --no-pager diff --exit-code HEAD | |
| - name: Generate diff | |
| run: git diff HEAD > bazel-lint-fixes.patch | |
| if: ${{ failure() }} | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ matrix.platform }}-bazel-lint-fixes | |
| path: bazel-lint-fixes.patch | |
| if: ${{ failure() }} | |
| robotpy_pregeneration: | |
| name: "Robotpy Pregeneration" | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: { fetch-depth: 0 } | |
| - id: Setup_build_buddy | |
| uses: ./.github/actions/setup-build-buddy | |
| with: | |
| token: ${{ secrets.BUILDBUDDY_API_KEY }} | |
| # You should ensure the headers are correct before trying to pregen files | |
| - name: Test Scan Headers | |
| run: bazel test //... -k --test_tag_filters=robotpy_scan_headers --build_tests_only | |
| shell: bash | |
| - name: Run robotpy pregeneration | |
| run: bazel run //:write_robotpy_files | |
| - name: Check Output | |
| run: git --no-pager diff --exit-code HEAD | |
| - name: Generate diff | |
| run: git diff HEAD > robotpy-pregeneration.patch | |
| if: ${{ failure() }} | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ matrix.platform }}-robotpy-pregeneration-fixes | |
| path: robotpy-pregeneration-fixes.patch | |
| if: ${{ failure() }} |