mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
197 lines
8.0 KiB
YAML
197 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
|
|
#
|
|
# - name: Install sccache
|
|
# uses: mozilla-actions/sccache-action@v0.0.9
|
|
#
|
|
# - 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: sccache
|
|
# SCCACHE_WEBDAV_ENDPOINT: "https://frcmaven.wpi.edu/artifactory/wpilib-generic-cache-cmake-local"
|
|
# SCCACHE_WEBDAV_KEY_PREFIX: "sccache-robotpy"
|
|
# SCCACHE_WEBDAV_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
|
|
# SCCACHE_WEBDAV_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
|