From acef3f576beb9a46b78cc63e4d5de4f7afba0871 Mon Sep 17 00:00:00 2001 From: Justin Kleiber Date: Wed, 21 Aug 2024 10:14:07 -0400 Subject: [PATCH] Minimal includes for wpilib --- .github/workflows/ci.yml | 9 ++++ wpi_interface/build.gradle | 88 +++----------------------------------- 2 files changed, 14 insertions(+), 83 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8f93711..861ffef 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,12 +19,21 @@ jobs: container: ${{ matrix.container }} steps: - uses: actions/checkout@v4 + with: + submodules: true + fetch-depth: 0 + + - name: Fetch history and metadata + run: git config --global --add safe.directory /__w/${{ github.event.repository.name }}/${{ github.event.repository.name }} + - uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' + - name: Build with Gradle run: ./gradlew build --max-workers 1 ${{ matrix.build-options }} + - uses: actions/upload-artifact@v3 with: name: ${{ matrix.artifact-name }} diff --git a/wpi_interface/build.gradle b/wpi_interface/build.gradle index 9c1476a..a90a5bb 100644 --- a/wpi_interface/build.gradle +++ b/wpi_interface/build.gradle @@ -3,10 +3,8 @@ import java.text.SimpleDateFormat plugins { id "java" id "maven-publish" - id "edu.wpi.first.GradleRIO" version "2024.3.2" id "com.peterabeles.gversion" version "1.10" id "com.diffplug.spotless" version "6.24.0" - id 'org.ajoberstar.grgit' version "5.2.1" } java { @@ -14,75 +12,14 @@ java { targetCompatibility = JavaVersion.VERSION_17 } -def VISUALVM_PROFILE = false - -// Define my targets (RoboRIO) and artifacts (deployable files) -// This is added by GradleRIO's backing project DeployUtils. -deploy { - targets { - roborio(getTargetTypeClass('RoboRIO')) { - // Team number is loaded either from the .wpilib/wpilib_preferences.json - // or from command line. If not found an exception will be thrown. - // You can use getTeamOrDefault(team) instead of getTeamNumber if you - // want to store a team number in this file. - team = project.frc.getTeamNumber() - debug = project.frc.getDebugOrDefault(false) - - artifacts { - // First part is artifact name, 2nd is artifact type - // getTargetTypeClass is a shortcut to get the class type using a string - - frcJava(getArtifactTypeClass('FRCJavaArtifact')) { - // jvmArgs.add("-XX:MaxHeapFreeRatio 40") - - if (VISUALVM_PROFILE) { - // Enable VisualVM connection - jvmArgs.add("-Dcom.sun.management.jmxremote=true") - jvmArgs.add("-Dcom.sun.management.jmxremote.port=1198") - jvmArgs.add("-Dcom.sun.management.jmxremote.local.only=false") - jvmArgs.add("-Dcom.sun.management.jmxremote.ssl=false") - jvmArgs.add("-Dcom.sun.management.jmxremote.authenticate=false") - jvmArgs.add("-Djava.rmi.server.hostname=10.4.1.2") - } - } - - // Static files artifact - frcStaticFileDeploy(getArtifactTypeClass('FileTreeArtifact')) { - files = project.fileTree('src/main/deploy') - directory = '/home/lvuser/deploy' - } - } - } - } -} - -def deployArtifact = deploy.targets.roborio.artifacts.frcJava - -// Set to true to use debug for JNI. -wpi.java.debugJni = false - // Set this to true to enable desktop support. def includeDesktopSupport = true // Defining my dependencies. In this case, WPILib (+ friends), and vendor libraries. // Also defines JUnit 5. dependencies { - implementation wpi.java.deps.wpilib() - implementation wpi.java.vendor.java() - - roborioDebug wpi.java.deps.wpilibJniDebug(wpi.platforms.roborio) - roborioDebug wpi.java.vendor.jniDebug(wpi.platforms.roborio) - - roborioRelease wpi.java.deps.wpilibJniRelease(wpi.platforms.roborio) - roborioRelease wpi.java.vendor.jniRelease(wpi.platforms.roborio) - - nativeDebug wpi.java.deps.wpilibJniDebug(wpi.platforms.desktop) - nativeDebug wpi.java.vendor.jniDebug(wpi.platforms.desktop) - simulationDebug wpi.sim.enableDebug() - - nativeRelease wpi.java.deps.wpilibJniRelease(wpi.platforms.desktop) - nativeRelease wpi.java.vendor.jniRelease(wpi.platforms.desktop) - simulationRelease wpi.sim.enableRelease() + implementation 'edu.wpi.first.wpilibj:wpilibj-java:2024.3.2' + implementation 'edu.wpi.first.wpilibNewCommands:wpilibNewCommands-java:2024.3.2' testImplementation 'org.junit.jupiter:junit-jupiter:5.10.1' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' @@ -95,24 +32,6 @@ test { systemProperty 'junit.jupiter.extensions.autodetection.enabled', 'true' } -// Simulation configuration (e.g. environment variables). -wpi.sim.addGui().defaultEnabled = true -wpi.sim.addDriverstation() - -// Setting up my Jar File. In this case, adding all libraries into the main jar ('fat jar') -// in order to make them all available at runtime. Also adding the manifest so WPILib -// knows where to look for our Robot Class. -jar { - from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } } - from sourceSets.main.allSource - duplicatesStrategy = DuplicatesStrategy.INCLUDE -} - -// Configure jar and deploy tasks -deployArtifact.jarTask = jar -wpi.java.configureExecutableTasks(jar) -wpi.java.configureTestTasks(test) - // Configure string concat to always inline compile tasks.withType(JavaCompile) { options.compilerArgs.add '-XDstringConcat=inline' @@ -131,6 +50,9 @@ indent = " " repositories { mavenCentral() mavenLocal() + maven { + url 'https://frcmaven.wpi.edu/artifactory/release/' + } } spotless {