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