Skip to content

2024 Reworks

2024 Reworks #231

Workflow file for this run

name: PathPlannerLib
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
jobs:
formatting:
name: "[PPLib] Check Formatting"
runs-on: ubuntu-22.04
container: wpilib/ubuntu-base:22.04
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Grant execute permission for gradlew
run: chmod +x gradlew
working-directory: ./pathplannerlib
- name: Check formatting
run: ./gradlew spotlessCheck
working-directory: ./pathplannerlib
test:
name: "[PPLib] Unit Tests"
runs-on: ubuntu-22.04
container: wpilib/ubuntu-base:22.04
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Grant execute permission for gradlew
run: chmod +x gradlew
working-directory: ./pathplannerlib
- name: Build & Test
run: ./gradlew build
working-directory: ./pathplannerlib
# - name: Upload coverage reports to Codecov
# uses: codecov/codecov-action@v3
# with:
# token: ${{ secrets.CODECOV_TOKEN }}
# name: pplib-coverage
# files: pathplannerlib/build/reports/jacoco/test/jacocoTestReport.xml
build-docker:
strategy:
fail-fast: false
matrix:
include:
- container: wpilib/roborio-cross-ubuntu:2023-22.04
artifact-name: PPLib-Athena
build-options: "-Ponlylinuxathena"
- container: wpilib/ubuntu-base:22.04
artifact-name: PPLib-Linux
build-options: ""
name: "[PPLib] Build - ${{ matrix.artifact-name }}"
runs-on: ubuntu-22.04
container: ${{ matrix.container }}
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Grant execute permission for gradlew
run: chmod +x gradlew
working-directory: ./pathplannerlib
- name: Build
run: ./gradlew build --max-workers 1 ${{ matrix.build-options }}
working-directory: ./pathplannerlib
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.artifact-name }}
path: pathplannerlib/build/allOutputs
build-host:
strategy:
fail-fast: false
matrix:
include:
- os: windows-2022
artifact-name: PPLib-Win64
- os: macos-12
artifact-name: PPLib-macOS
name: "[PPLib] Build - ${{ matrix.artifact-name }}"
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Setup java
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'zulu'
- name: Build
run: ./gradlew build -Pbuildalldesktop
working-directory: ./pathplannerlib
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.artifact-name }}
path: pathplannerlib/build/allOutputs
combine:
name: "[PPLib] Combine"
needs: [build-docker, build-host]
runs-on: ubuntu-22.04
steps:
- name: Checkout build-tools
uses: actions/checkout@v3
with:
repository: wpilibsuite/build-tools
- name: Download artifacts
uses: actions/download-artifact@v3
with:
path: combiner/products/build/allOutputs
- name: Flatten Artifacts
run: rsync -a --delete combiner/products/build/allOutputs/*/* combiner/products/build/allOutputs/
- name: Setup java
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'zulu'
- name: Combine
run: ./gradlew publish -Pthirdparty
working-directory: combiner
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: PPLib-Maven
path: ~/releases