From b40217de96dabec56609e1dce735d1e9b713edc5 Mon Sep 17 00:00:00 2001 From: karllessard Date: Fri, 12 Jun 2026 14:42:38 -0400 Subject: [PATCH] chore(cicd): upload native artifacts to GitHub --- .github/workflows/build.yml | 40 ++++- pom.xml | 15 +- .../tensorflow-core-native/pom.xml | 149 ++++++++++-------- 3 files changed, 122 insertions(+), 82 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 19c425eacf0..d43027f4c10 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -89,10 +89,17 @@ jobs: mvn -version echo "central${{ secrets.CI_DEPLOY_USERNAME }}${{ secrets.CI_DEPLOY_PASSWORD }}" > $HOME/.m2/settings.xml mvn clean install -pl '!tensorflow-framework' -B -U -e -Djavacpp.platform=${{ github.job }} -Djavacpp.platform.extension=${{ matrix.ext }} - - name: Deploy native artifact + - name: Build native artifact if: env.DEPLOY_RELEASE == 'true' || env.DEPLOY_SNAPSHOT == 'true' -# run: mvn -f tensorflow-core/tensorflow-core-native/pom.xml deploy:deploy-file@native-only -B -e -Djavacpp.platform=${{ github.job }} -Djavacpp.platform.extension=${{ matrix.ext }} -Durl=${{ needs.prepare.outputs.repositoryUrl }} run: mvn -f tensorflow-core/tensorflow-core-native/pom.xml deploy -B -e -Djavacpp.platform=${{ github.job }} -Djavacpp.platform.extension=${{ matrix.ext }} + - name: Upload native artifact + if: env.DEPLOY_RELEASE == 'true' || env.DEPLOY_SNAPSHOT == 'true' + uses: actions/upload-artifact@v4 + with: + name: native-artifact-${{ github.job }}${{ matrix.ext }} + path: tensorflow-core/tensorflow-core-native/target/*.zip + if-no-files-found: error + retention-days: 1 linux-x86_64: runs-on: ubuntu-22.04 needs: prepare @@ -113,10 +120,17 @@ jobs: mvn -version echo "central${{ secrets.CI_DEPLOY_USERNAME }}${{ secrets.CI_DEPLOY_PASSWORD }}" > $HOME/.m2/settings.xml mvn clean install -pl '!tensorflow-framework' -B -U -e -Djavacpp.platform=${{ github.job }} -Djavacpp.platform.extension=${{ matrix.ext }} - - name: Deploy native artifact + - name: Build native artifact if: env.DEPLOY_RELEASE == 'true' || env.DEPLOY_SNAPSHOT == 'true' - # run: mvn -f tensorflow-core/tensorflow-core-native/pom.xml deploy:deploy-file@native-only -B -e -Djavacpp.platform=${{ github.job }} -Djavacpp.platform.extension=${{ matrix.ext }} -Durl=${{ needs.prepare.outputs.repositoryUrl }} run: mvn -f tensorflow-core/tensorflow-core-native/pom.xml deploy -B -e -Djavacpp.platform=${{ github.job }} -Djavacpp.platform.extension=${{ matrix.ext }} + - name: Upload native artifact + if: env.DEPLOY_RELEASE == 'true' || env.DEPLOY_SNAPSHOT == 'true' + uses: actions/upload-artifact@v4 + with: + name: native-artifact-${{ github.job }}${{ matrix.ext }} + path: tensorflow-core/tensorflow-core-native/target/*.zip + if-no-files-found: error + retention-days: 1 macosx-arm64: runs-on: macos-14 needs: prepare @@ -138,10 +152,18 @@ jobs: mvn -version echo "central${{ secrets.CI_DEPLOY_USERNAME }}${{ secrets.CI_DEPLOY_PASSWORD }}" > $HOME/.m2/settings.xml mvn clean install -pl '!tensorflow-framework' -B -U -e -Djavacpp.platform=${{ github.job }} -Djavacpp.platform.extension=${{ matrix.ext }} - - name: Deploy native artifact + - name: Build native artifact if: env.DEPLOY_RELEASE == 'true' || env.DEPLOY_SNAPSHOT == 'true' - # run: mvn -f tensorflow-core/tensorflow-core-native/pom.xml deploy:deploy-file@native-only -B -e -Djavacpp.platform=${{ github.job }} -Djavacpp.platform.extension=${{ matrix.ext }} -Durl=${{ needs.prepare.outputs.repositoryUrl }} run: mvn -f tensorflow-core/tensorflow-core-native/pom.xml deploy -B -e -Djavacpp.platform=${{ github.job }} -Djavacpp.platform.extension=${{ matrix.ext }} + - name: Upload native artifact + if: env.DEPLOY_RELEASE == 'true' || env.DEPLOY_SNAPSHOT == 'true' + uses: actions/upload-artifact@v4 + with: + name: native-artifact-${{ github.job }}${{ matrix.ext }} + path: tensorflow-core/tensorflow-core-native/target/*.zip + if-no-files-found: error + retention-days: 1 + deploy: if: ${{ github.event_name == 'push' && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/staging') }} # DEPLOY_SNAPSHOT (releases should be signed and deployed manually from local machine) needs: [linux-x86_64, macosx-arm64, linux-arm64] @@ -154,6 +176,12 @@ jobs: java-version: '11' - name: Checkout repository uses: actions/checkout@v6 + - name: Download native artifacts + uses: actions/download-artifact@v8 + with: + pattern: native-artifact-* + path: tensorflow-core/tensorflow-core-native/target + merge-multiple: true - name: Build project run: | java -version diff --git a/pom.xml b/pom.xml index 198ee0f3b5a..e0bf50f0909 100644 --- a/pom.xml +++ b/pom.xml @@ -601,12 +601,6 @@ org.sonatype.central central-publishing-maven-plugin - 0.10.0 - true - - central - true - @@ -628,6 +622,15 @@ false + + org.sonatype.central + central-publishing-maven-plugin + 0.10.0 + true + + central + + diff --git a/tensorflow-core/tensorflow-core-native/pom.xml b/tensorflow-core/tensorflow-core-native/pom.xml index db40c870bd8..fe96d310402 100644 --- a/tensorflow-core/tensorflow-core-native/pom.xml +++ b/tensorflow-core/tensorflow-core-native/pom.xml @@ -85,51 +85,51 @@ - - maven-dependency-plugin - 3.6.1 - - - copy-native-artifacts - validate - - copy - - - ${project.build.directory} - true - true - true - - - ${project.groupId} - ${project.artifactId} - ${project.version} - ${javacpp.platform.linux-x86_64} - - - ${project.groupId} - ${project.artifactId} - ${project.version} - ${javacpp.platform.linux-x86_64}-gpu - - - ${project.groupId} - ${project.artifactId} - ${project.version} - ${javacpp.platform.macosx-arm64} - - - ${project.groupId} - ${project.artifactId} - ${project.version} - ${javacpp.platform.linux-arm64} - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.codehaus.mojo build-helper-maven-plugin @@ -565,32 +565,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + - maven-deploy-plugin - 3.1.1 - - - - native-only - - deploy-file - - - - ${project.build.directory}/${project.artifactId}-${project.version}-${native.classifier}.jar - central - ${project.groupId} - ${project.artifactId} - ${native.classifier} - pom.xml - false - - - + org.sonatype.central + central-publishing-maven-plugin + + true + ${project.artifactId}-${project.version}-${native.classifier}.zip +