mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
207 lines
8.0 KiB
YAML
207 lines
8.0 KiB
YAML
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
|
|
- uses: gradle/actions/wrapper-validation@v4
|
|
- 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 :simulation:halsim_ws_server:publish :simulation:halsim_ws_client:publish :simulation:halsim_xrp:publish :fieldImages:publish :romiVendordep:publish :xrpVendordep: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
|
|
|
|
Robotpy:
|
|
name: "Build - Robotpy"
|
|
needs: [build-artifacts]
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
repository: robotpy/mostrobotpy
|
|
fetch-depth: 0
|
|
- uses: actions/download-artifact@v4
|
|
with:
|
|
name: MavenArtifacts
|
|
- name: Move artifacts
|
|
run: mkdir -p ~/releases/maven/development && cp -r edu ~/releases/maven/development
|
|
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: 3.13
|
|
|
|
#
|
|
# Setup build caching
|
|
#
|
|
|
|
- name: Set ccache size
|
|
shell: bash
|
|
id: ccache
|
|
run: echo "MAX_SIZE=500M" >> $GITHUB_OUTPUT
|
|
|
|
- name: Setup ccache
|
|
# uses: hendrikmuhs/ccache-action@v1.2.10
|
|
uses: robotpy/ccache-action@fork
|
|
with:
|
|
key: ubuntu-22.04-3.13
|
|
variant: ccache
|
|
max-size: ${{ steps.ccache.outputs.max_size }}
|
|
|
|
- name: Install deps
|
|
shell: bash
|
|
run: |
|
|
python -m pip --disable-pip-version-check install -r rdev_requirements.txt
|
|
|
|
- name: Install numpy (needed for stubgen but broken in raspbian CI)
|
|
shell: bash
|
|
run: |
|
|
python -m pip --disable-pip-version-check install numpy
|
|
- name: Patch RobotPy rdev to use local development
|
|
run: git config user.name github-actions && git config user.email github-actions@github.com && set -- ~/releases/maven/development/edu/wpi/first/wpiutil/wpiutil-cpp/*/ ; wpilibversion=$(basename $1) && echo $wpilibversion && sed --regexp-extended -i 's@(wpilib_bin_url =).*@\1 \"file:\/\/'"$HOME"'\/releases\/maven\/development"@' rdev.toml && sed --regexp-extended -i 's/(wpilib_bin_version =).*/\1 \"'"$wpilibversion"'\"/' rdev.toml && ./rdev.sh update-pyproject --commit
|
|
- name: Build + test wheels
|
|
shell: bash
|
|
run: |
|
|
./rdev.sh ci run
|
|
env:
|
|
RPYBUILD_STRIP_LIBPYTHON: "1"
|
|
RPYBUILD_CC_LAUNCHER: ccache
|