Skip to content

Monorepo GradleJni #414

Monorepo GradleJni

Monorepo GradleJni #414

Workflow file for this run

name: CI
on: [push, pull_request]
jobs:
build:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'temurin'
- name: Build
run: ./gradlew build -PRunToolchainTests
- name: Publish
run: ./gradlew publishToMavenLocal
- name: Check output
run: git --no-pager diff --exit-code HEAD
test-examples:
needs: build
strategy:
matrix:
include:
- os: windows-latest
language: cpp
- os: windows-latest
language: jni
- os: ubuntu-latest
language: cpp
- os: ubuntu-latest
language: jni
- os: macos-latest
language: cpp
- os: macos-latest
language: jni
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: 17
distribution: temurin
- uses: actions/download-artifact@v4
with:
name: Maven
path: ~/.m2/
- name: Setup Toolchains
run: |
./gradlew installRoboRioToolchain
./gradlew installArm32Toolchain
./gradlew installArm64Toolchain
- name: Test ${{ matrix.language }} Build
run: ./gradlew build
working-directory: testing/${{ matrix.language }}
publish:
needs: [build, test-examples]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'temurin'
- name: Publish
if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
run: ./gradlew publishToMavenLocal
- name: Publish (Release)
if: ${{ github.repository_owner == 'wpilibsuite' && startsWith(github.ref, 'refs/tags/v') }}
env:
GRADLE_PUBLISH_KEY: ${{ secrets.GRADLE_PUBLISH_KEY }}
GRADLE_PUBLISH_SECRET: ${{ secrets.GRADLE_PUBLISH_SECRET }}
run: |
./gradlew publishPlugin \
-Pgradle.publish.key=$GRADLE_PUBLISH_KEY \
-Pgradle.publish.secret=$GRADLE_PUBLISH_SECRET