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-24.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 - uses: gradle/actions/wrapper-validation@v4 - name: Build WPILib with Gradle uses: addnab/docker-run-action@v3 with: image: wpilib/systemcore-cross-ubuntu:2025-24.04 options: -v ${{ github.workspace }}:/work -w /work -e GITHUB_REF -e CI -e DISPLAY run: df . && rm -f semicolon_delimited_script && ./gradlew -Pskiplinuxarm64 :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 PathWeaver: name: "Build - PathWeaver" needs: [build-artifacts] runs-on: ubuntu-24.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