diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5b8cc3316f6..24cbe897aad 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,6 +12,8 @@ on: types: [opened, reopened, synchronize, labeled, unlabeled] env: STAGING_PROFILE_ID: 46f80d0729c92d + DEPLOY_SNAPSHOT: ${{ github.event_name == 'push' && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/staging') }} + DEPLOY_RELEASE: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/heads/r') }} jobs: check-format: if: github.event_name == 'pull_request' @@ -35,19 +37,30 @@ jobs: prepare: runs-on: ubuntu-20.04 outputs: - stagingRepositoryId: ${{ steps.staging.outputs.stagingRepositoryId }} + repositoryUrl: ${{ steps.repository.outputs.repositoryUrl }} steps: - name: Create staging repository - if: github.event_name == 'push' && startsWith(github.ref, 'refs/heads/r') + if: ${{ env.DEPLOY_RELEASE == 'true' }} id: staging run: | echo "Creating staging repository with profile $STAGING_PROFILE_ID" echo "Releasing TF Java - created by CI build" > request.xml curl -X POST -d @request.xml -s -o response.xml -u ${{ secrets.CI_DEPLOY_USERNAME }}:${{ secrets.CI_DEPLOY_PASSWORD }} -H "Content-Type:application/xml" \ https://oss.sonatype.org/service/local/staging/profiles/$STAGING_PROFILE_ID/start - STAGING_REPOSITORY_ID=`awk -F'[<>]' '/stagedRepositoryId/{print $3}' response.xml` + export STAGING_REPOSITORY_ID=`awk -F'[<>]' '/stagedRepositoryId/{print $3}' response.xml` echo "Staging repository created: $STAGING_REPOSITORY_ID" - echo "::set-output name=stagingRepositoryId::$STAGING_REPOSITORY_ID" + - name: Checkout repository + uses: actions/checkout@v1 + - name: Extract distribution repository URL + id: repository + run: | + if [[ "${{ env.DEPLOY_RELEASE == 'true' }}" ]]; then + export REPOSITORY_URL=`mvn exec:exec -q -N -Dexec.executable='echo' -Dexec.args="\\${project.distributionManagement.repository.url}" -DstagingRepositoryId=$STAGING_REPOSITORY_ID` + else + export REPOSITORY_URL=`mvn exec:exec -q -N -Dexec.executable='echo' -Dexec.args="\\${project.distributionManagement.snapshotRepository.url}"` + fi + echo "Repository URL: $REPOSITORY_URL" + echo "::set-output name=repositoryUrl::$REPOSITORY_URL" linux-x86_64: runs-on: ubuntu-20.04 needs: prepare @@ -67,7 +80,10 @@ jobs: gcc --version mvn -version echo "ossrh${{ secrets.CI_DEPLOY_USERNAME }}${{ secrets.CI_DEPLOY_PASSWORD }}" > $HOME/.m2/settings.xml - mvn clean install -pl '!tensorflow-framework' -B -U -e -Djavacpp.platform=linux-x86_64 -Djavacpp.platform.extension=${{ matrix.ext }} -am -DstagingRepositoryId=${{ needs.prepare.outputs.stagingRepositoryId }} + mvn clean install -pl '!tensorflow-framework' -B -U -e -Djavacpp.platform=linux-x86_64 -Djavacpp.platform.extension=${{ matrix.ext }} -am + - name: Deploy 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 -Durl=${{ needs.prepare.outputs.repositoryUrl }} macosx-arm64: runs-on: macos-14 needs: prepare @@ -88,7 +104,10 @@ jobs: clang --version mvn -version echo "ossrh${{ secrets.CI_DEPLOY_USERNAME }}${{ secrets.CI_DEPLOY_PASSWORD }}" > $HOME/.m2/settings.xml - mvn clean install -pl '!tensorflow-framework' -B -U -e -Djavacpp.platform=macosx-arm64 -Djavacpp.platform.extension=${{ matrix.ext }} -am -DstagingRepositoryId=${{ needs.prepare.outputs.stagingRepositoryId }} + mvn clean install -pl '!tensorflow-framework' -B -U -e -Djavacpp.platform=macosx-arm64 -Djavacpp.platform.extension=${{ matrix.ext }} -am + - name: Deploy 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 -Durl=${{ needs.prepare.outputs.repositoryUrl }} macosx-x86_64: runs-on: macos-11 needs: prepare @@ -108,7 +127,10 @@ jobs: clang --version mvn -version echo "ossrh${{ secrets.CI_DEPLOY_USERNAME }}${{ secrets.CI_DEPLOY_PASSWORD }}" > $HOME/.m2/settings.xml - mvn clean install -pl '!tensorflow-framework' -B -U -e -Djavacpp.platform=macosx-x86_64 -Djavacpp.platform.extension=${{ matrix.ext }} -am -DstagingRepositoryId=${{ needs.prepare.outputs.stagingRepositoryId }} + mvn clean install -pl '!tensorflow-framework' -B -U -e -Djavacpp.platform=macosx-x86_64 -Djavacpp.platform.extension=${{ matrix.ext }} -am + - name: Deploy 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 -Durl=${{ needs.prepare.outputs.repositoryUrl }} windows-x86_64: if: github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'CI build') runs-on: windows-2019 @@ -148,10 +170,13 @@ jobs: call mvn -version echo ^^^^ossrh^^${{ secrets.CI_DEPLOY_USERNAME }}^^${{ secrets.CI_DEPLOY_PASSWORD }}^^^^ > %USERPROFILE%\.m2\settings.xml set "SKIP_EXPORT=true" - call mvn clean install -pl "!tensorflow-framework" -B -U -e -Djavacpp.platform=windows-x86_64 -Djavacpp.platform.extension=${{ matrix.ext }} -am -DstagingRepositoryId=${{ needs.prepare.outputs.stagingRepositoryId }} + call mvn clean install -pl "!tensorflow-framework" -B -U -e -Djavacpp.platform=windows-x86_64 -Djavacpp.platform.extension=${{ matrix.ext }} -am if ERRORLEVEL 1 exit /b + - name: Deploy 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 -Durl=${{ needs.prepare.outputs.repositoryUrl }} deploy: - if: github.event_name == 'push' && (contains(github.ref, 'master') || contains(github.ref, 'staging')) + if: false # ${{ env.DEPLOY_SNAPSHOT == 'true' }} needs: [linux-x86_64, macosx-x86_64, windows-x86_64, macosx-arm64] runs-on: ubuntu-20.04 steps: diff --git a/pom.xml b/pom.xml index 6eb3dd2c328..fa8bed7ed56 100644 --- a/pom.xml +++ b/pom.xml @@ -148,6 +148,7 @@ false + deploying diff --git a/tensorflow-core/tensorflow-core-api/pom.xml b/tensorflow-core/tensorflow-core-api/pom.xml index 0bbaa047aa7..7a78ba78460 100644 --- a/tensorflow-core/tensorflow-core-api/pom.xml +++ b/tensorflow-core/tensorflow-core-api/pom.xml @@ -177,18 +177,6 @@ - - - - deploying - - true - - diff --git a/tensorflow-core/tensorflow-core-native/pom.xml b/tensorflow-core/tensorflow-core-native/pom.xml index 75c2914f5b7..750630b3661 100644 --- a/tensorflow-core/tensorflow-core-native/pom.xml +++ b/tensorflow-core/tensorflow-core-native/pom.xml @@ -58,6 +58,7 @@ + native-build @@ -73,13 +74,18 @@ + + + deploying + + true + true + + + + generating - - - native.generate - - false false @@ -467,6 +473,34 @@ + + maven-deploy-plugin + 3.1.1 + + + + native-only + + deploy-file + + + + ${project.build.directory}/${project.artifactId}-${project.version}-${native.classifier}.jar + ossrh + ${project.groupId} + ${project.artifactId} + ${native.classifier} + pom.xml + false + + + + + maven-surefire-plugin