mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-21 01:01:43 +00:00
This can catch breaking changes earlier. - Builds linux only for speed - Builds and publishes artifacts in this file as it was actually faster then reusing the artifacts from the gradle file as those need the combiner run on them. It uploads the artifacts to Actions with a 1 day retention, because that allows the tools to be built in parallel, which overall sped things up. This also only allows relevant tasks in wpilib to be run - The tool builds are uploaded with a shorter retention time in case someone wants to do more extensive tests.
145 lines
5.1 KiB
YAML
145 lines
5.1 KiB
YAML
name: Tools
|
|
|
|
on: [pull_request, push]
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
YEAR: 2024
|
|
|
|
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 -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
|
|
- 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
|
|
- 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
|