mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
149 lines
5.8 KiB
YAML
149 lines
5.8 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
|
|
- name: Build WPILib with Gradle
|
|
uses: addnab/docker-run-action@v3
|
|
with:
|
|
image: wpilib/roborio-cross-ubuntu:2024-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 -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
|
|
- uses: actions/upload-artifact@v4
|
|
if: always()
|
|
with:
|
|
name: TestResults
|
|
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
|