diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index de0bb54..2adeffd 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -11,8 +11,17 @@ on: jobs: build: runs-on: ubuntu-latest - steps: + strategy: + fail-fast: false + matrix: + include: + - build-type: Release + publish-type: "" + - build-type: Debug + publish-type: "debug" + + steps: - uses: actions/checkout@v3 with: fetch-depth: 0 @@ -36,14 +45,14 @@ jobs: commands: | apt-get update apt-get install -y cmake build-essential default-jdk openjdk-17-jdk - cmake -B cmake_build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=cmake_build -DOPENCV_ARCH=linuxarm64 + cmake -B cmake_build -DCMAKE_BUILD_TYPE={{ matrix.build-type }} -DCMAKE_INSTALL_PREFIX=cmake_build -DOPENCV_ARCH=linuxarm64 cmake --build cmake_build --target install -- -j 4 - run: find . - run: | chmod +x gradlew - ./gradlew build ${{ (startsWith(github.event_name, 'push') && 'publish') || '' }} -PArchOverride=linuxarm64 -x check + ./gradlew build ${{ (startsWith(github.event_name, 'push') && 'publish') || '' }} -PArchOverride=linuxarm64 -PPublishType={{ matrix.publish-type }} -x check env: ARTIFACTORY_API_KEY: ${{ secrets.ARTIFACTORY_API_KEY }} @@ -54,7 +63,7 @@ jobs: path: ${{ github.workspace }}/build/libs/*.jar - uses: actions/upload-artifact@v4 with: - name: librknn + name: librknn-{{ matrix.build-type }} path: cmake_build/*.so # Push to dev release on pushes to master @@ -65,13 +74,13 @@ jobs: rm: true files: | cmake_build/*.so - if: github.event_name == 'push' + if: github.event_name == 'push' && (startsWith(matrix.build-type, 'Release')) # Push to actual release, if tagged - uses: softprops/action-gh-release@v1 with: files: | cmake_build/*.so - if: startsWith(github.ref, 'refs/tags/v') + if: startsWith(github.ref, 'refs/tags/v') && (startsWith(matrix.build-type, 'Release')) env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/publish.gradle b/publish.gradle index b7c4d82..2a77a02 100644 --- a/publish.gradle +++ b/publish.gradle @@ -4,6 +4,9 @@ def nativeName = wpilibTools.platformMapper.currentPlatform.platformName; def artifactGroupId = 'org.photonvision' def baseArtifactId = "rknn_jni" +def jniType = project.findProperty("PublishType") ?; ""; +println("Building with JNI publish type: " + jniType); + task nativeLibraryJar(type: Jar, dependsOn: copyNativeLibrary) { archiveClassifier = nativeName from outputsFolder @@ -32,7 +35,7 @@ publishing { mavenJNI(MavenPublication) { groupId = artifactGroupId artifactId = "${baseArtifactId}-jni" - version = pubVersion;// + "-" + nativeName; + version = pubVersion + jniType; artifact nativeLibraryJar }