Add CI #18
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
push: | |
branches: | |
- 'master' | |
tags-ignore: | |
- '*' | |
pull_request: | |
branches: | |
- '*' | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
build: | |
timeout-minutes: 15 | |
strategy: | |
fail-fast: false | |
matrix: | |
language: [Java, C++] | |
example: [ | |
# Alternate Encoder, | |
# Analog Feedback Device, | |
Arcade Drive With CAN, | |
# Arcade Drive with PWM, | |
# Bus Measurements, | |
# Encoder Feedback Device, | |
# Get and Set Parameters, | |
# Limit Switch, | |
# Motor Follower, | |
# Position Closed Loop Control, | |
# Read Encoder Values, | |
# Smart Motion Example, | |
# Soft Limits, | |
# Tank Drive With CAN, | |
# Velocity Closed Loop Control, | |
] | |
include: | |
- example: Arcade Drive With CAN | |
skip-java: true | |
# - example: Arcade Drive with PWM | |
# skip-java: true | |
# - example: Motor Follower | |
# skip-cpp: true | |
# - example: Tank Drive With CAN | |
# skip-cpp: true | |
name: Build ${{ matrix.example }} - ${{ matrix.language }} | |
runs-on: ubuntu-latest | |
container: wpilib/roborio-cross-ubuntu:2024-22.04 | |
steps: | |
- name: Checkout | |
if: (matrix.language == 'Java' && !matrix.skip-java) || (matrix.language == 'C++' && !matrix.skip-cpp) | |
uses: actions/checkout@v3 | |
- name: Cache | |
if: (matrix.language == 'Java' && !matrix.skip-java) || (matrix.language == 'C++' && !matrix.skip-cpp) | |
uses: actions/cache@v3 | |
with: | |
path: | | |
${{ matrix.language }}/${{ matrix.example }}/.gradle | |
${{ matrix.language }}/${{ matrix.example }}/bin | |
${{ matrix.language }}/${{ matrix.example }}/build | |
key: ${{ matrix.example }}-${{ matrix.language }}-build-${{ github.sha }} | |
restore-keys: | | |
${{ matrix.example }}-${{ matrix.language }}-build- | |
- name: Build | |
if: (matrix.language == 'Java' && !matrix.skip-java) || (matrix.language == 'C++' && !matrix.skip-cpp) | |
run: | | |
cd "${{ matrix.language }}" | |
cd "${{ matrix.example }}" | |
chmod +x gradlew | |
./gradlew build |