Skip to content

refactor: simplify unit type detection using C++20 concepts #23

refactor: simplify unit type detection using C++20 concepts

refactor: simplify unit type detection using C++20 concepts #23

Workflow file for this run

name: CI
on:
push:
pull_request:
workflow_call:
jobs:
validation:
name: "Validation"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: gradle/actions/wrapper-validation@v4
build-docker:
needs: [validation]
strategy:
fail-fast: false
matrix:
include:
- container: wpilib/roborio-cross-ubuntu:2025-22.04
artifact-name: Athena
build-options: "-Ponlylinuxathena"
- container: wpilib/raspbian-cross-ubuntu:bookworm-22.04
artifact-name: Arm32
build-options: "-Ponlylinuxarm32"
- container: wpilib/aarch64-cross-ubuntu:bookworm-22.04
artifact-name: Arm64
build-options: "-Ponlylinuxarm64"
- container: wpilib/ubuntu-base:22.04
artifact-name: Linux
build-options: ""
name: "Build - ${{ matrix.artifact-name }}"
runs-on: ubuntu-22.04
container: ${{ matrix.container }}
steps:
- uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0
- name: Fetch all history and metadata
run: |
git config --global --add safe.directory /__w/${{ github.event.repository.name }}/${{ github.event.repository.name }}
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
cache-read-only: false
- name: Build with Gradle
run: ./gradlew build ${{ matrix.build-options }}
- name: Publish to Local Maven
run: ./gradlew publish ${{ matrix.build-options }}
- uses: actions/upload-artifact@v4
with:
name: maven-${{ matrix.artifact-name }}
path: build/repos/releases
build-host:
needs: [validation]
env:
MACOSX_DEPLOYMENT_TARGET: 13.3
strategy:
fail-fast: false
matrix:
include:
- os: windows-2022
artifact-name: Win64
architecture: x64
- os: macos-14
artifact-name: macOS
architecture: aarch64
name: "Build - ${{ matrix.artifact-name }}"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Fetch all history and metadata
run: git fetch --prune --unshallow
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17
architecture: ${{ matrix.architecture }}
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
cache-read-only: false
- name: Build with Gradle
run: ./gradlew build -Pbuildalldesktop
- name: Publish to Local Maven
run: ./gradlew publish -Pbuildalldesktop
- uses: actions/upload-artifact@v4
with:
name: maven-${{ matrix.artifact-name }}
path: build/repos/releases
combine:
name: Combine
needs: [build-docker, build-host]
runs-on: ubuntu-22.04
steps:
- uses: actions/download-artifact@v4
with:
pattern: maven-*
path: maven-artifacts
- name: Combine Maven Repositories
run: |
mkdir -p maven-combined
rsync -a maven-artifacts/*/* maven-combined/
- uses: actions/upload-artifact@v4
with:
name: Maven
path: maven-combined