WPIcal: Field Calibration Tool #3605
This file contains 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: Tools | |
on: [pull_request, push] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
cancel-in-progress: true | |
env: | |
YEAR: 2025 | |
jobs: | |
build-artifacts: | |
name: "Build - WPILib" | |
runs-on: ubuntu-22.04 | |
env: | |
DISPLAY: ':10' | |
steps: | |
- name: Free Disk Space | |
uses: jlumbroso/free-disk-space@main | |
with: | |
tool-cache: false | |
android: true | |
dotnet: true | |
haskell: true | |
large-packages: false | |
docker-images: false | |
swap-storage: false | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Build WPILib with Gradle | |
uses: addnab/docker-run-action@v3 | |
with: | |
image: wpilib/roborio-cross-ubuntu:2025-22.04 | |
options: -v ${{ github.workspace }}:/work -w /work -e GITHUB_REF -e CI -e DISPLAY | |
run: df . && rm -f semicolon_delimited_script && ./gradlew :wpilibc:publish :wpilibj:publish :wpilibNewCommands:publish :hal:publish :cameraserver:publish :ntcore:publish :cscore:publish :wpimath:publish :wpinet:publish :wpiutil:publish :apriltag:publish :wpiunits:publish :simulation:halsim_gui:publish :simulation:halsim_ds_socket:publish :fieldImages:publish :epilogue-processor:publish :epilogue-runtime:publish :thirdparty:googletest:publish -x test -x Javadoc -x doxygen --build-cache && cp -r /root/releases/maven/development /work | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: MavenArtifacts | |
path: | | |
development | |
retention-days: 1 | |
Robotbuilder: | |
name: "Build - RobotBuilder" | |
needs: [build-artifacts] | |
runs-on: ubuntu-22.04 | |
env: | |
DISPLAY: ':10' | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: wpilibsuite/robotbuilder | |
fetch-depth: 0 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: MavenArtifacts | |
- name: Patch RobotBuilder to use local development | |
run: cd src/main/resources/export && echo "wpi.maven.useLocal = false" >> java/build.gradle && echo "wpi.maven.useFrcMavenLocalDevelopment = true" >> java/build.gradle && echo "wpi.versions.wpilibVersion = '$YEAR.424242.+'" >> java/build.gradle && echo "wpi.versions.wpimathVersion = '$YEAR.424242.+'" >> java/build.gradle && echo "wpi.maven.useLocal = false" >> cpp/build.gradle && echo "wpi.maven.useFrcMavenLocalDevelopment = true" >> cpp/build.gradle && echo "wpi.versions.wpilibVersion = '$YEAR.424242.+'" >> cpp/build.gradle && echo "wpi.versions.wpimathVersion = '$YEAR.424242.+'" >> cpp/build.gradle | |
- name: Install and run xvfb | |
run: sudo apt-get update && sudo apt-get install -y xvfb && Xvfb $DISPLAY & | |
- name: Move artifacts | |
run: mkdir -p ~/releases/maven/development && cp -r edu ~/releases/maven/development | |
- uses: actions/setup-java@v4 | |
with: | |
java-version: 17 | |
distribution: 'temurin' | |
- name: Build RobotBuilder with Gradle | |
run: ./gradlew build test --tests 'robotbuilder.exporters.*' -x htmlSanityCheck -PbuildServer -PreleaseMode ; cat build/test-results/test/TEST-robotbuilder.exporters.*.xml ; | |
- name: Summarize RobotBuilder Test Results | |
uses: EnricoMi/publish-unit-test-result-action@v2 | |
if: always() | |
with: | |
files: | | |
build/test-results/test/TEST*.xml | |
check_run: false | |
comment_mode: off | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: RobotBuilderTestResults | |
path: | | |
build/reports/ | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: RobotBuilder Build | |
path: | | |
build/libs/ | |
retention-days: 7 | |
Shuffleboard: | |
name: "Build - Shuffleboard" | |
needs: [build-artifacts] | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: wpilibsuite/shuffleboard | |
fetch-depth: 0 | |
- name: Patch Shuffleboard to use local development | |
run: sed -i "s/wpilibTools.deps.wpilibVersion.*/wpilibTools.deps.wpilibVersion = \'$YEAR\.424242\.+\'/" app/app.gradle && sed -i "s/wpilibTools.deps.wpilibVersion.*/wpilibTools.deps.wpilibVersion = \'$YEAR\.424242\.+\'/" plugins/cameraserver/cameraserver.gradle && sed -i "s/wpilibTools.deps.wpilibVersion.*/wpilibTools.deps.wpilibVersion = \'$YEAR\.424242\.+\'/" plugins/networktables/networktables.gradle | |
- uses: actions/download-artifact@v4 | |
with: | |
name: MavenArtifacts | |
- uses: actions/setup-java@v4 | |
with: | |
java-version: 17 | |
distribution: 'temurin' | |
- name: Move artifacts | |
run: mkdir -p ~/releases/maven/development && cp -r edu ~/releases/maven/development | |
- name: Install dependencies | |
run: sudo apt-get install -y libgtk2.0-0 | |
- name: Build with Gradle | |
run: ./gradlew build -x Javadoc | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: Shuffleboard Build | |
path: | | |
build/allOutputs/ | |
retention-days: 7 | |
PathWeaver: | |
name: "Build - PathWeaver" | |
needs: [build-artifacts] | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: wpilibsuite/PathWeaver | |
fetch-depth: 0 | |
- name: Patch PathWeaver to use local development | |
run: sed -i "s/wpilibTools.deps.wpilibVersion.*/wpilibTools.deps.wpilibVersion = \'$YEAR\.424242\.+\'/" dependencies.gradle | |
- uses: actions/download-artifact@v4 | |
with: | |
name: MavenArtifacts | |
- uses: actions/setup-java@v4 | |
with: | |
java-version: 17 | |
distribution: 'temurin' | |
- name: Move artifacts | |
run: mkdir -p ~/releases/maven/development && cp -r edu ~/releases/maven/development | |
- name: Build with Gradle | |
run: ./gradlew build | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: PathWeaver Build | |
path: | | |
build/allOutputs/ | |
retention-days: 7 |