1212 types : [opened, reopened, synchronize, labeled, unlabeled]
1313env :
1414 STAGING_PROFILE_ID : 46f80d0729c92d
15+ DEPLOY_SNAPSHOT : ${{ github.event_name == 'push' && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/staging') }}
16+ DEPLOY_RELEASE : ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/heads/r') }}
1517jobs :
1618 check-format :
1719 if : github.event_name == 'pull_request'
@@ -35,19 +37,30 @@ jobs:
3537 prepare :
3638 runs-on : ubuntu-20.04
3739 outputs :
38- stagingRepositoryId : ${{ steps.staging .outputs.stagingRepositoryId }}
40+ repositoryUrl : ${{ steps.repository .outputs.repositoryUrl }}
3941 steps :
4042 - name : Create staging repository
41- if : github.event_name == 'push' && startsWith(github.ref, 'refs/heads/r')
43+ if : env.DEPLOY_RELEASE == 'true'
4244 id : staging
4345 run : |
4446 echo "Creating staging repository with profile $STAGING_PROFILE_ID"
4547 echo "<promoteRequest><data><description>Releasing TF Java - created by CI build</description></data></promoteRequest>" > request.xml
4648 curl -X POST -d @request.xml -s -o response.xml -u ${{ secrets.CI_DEPLOY_USERNAME }}:${{ secrets.CI_DEPLOY_PASSWORD }} -H "Content-Type:application/xml" \
4749 https://oss.sonatype.org/service/local/staging/profiles/$STAGING_PROFILE_ID/start
48- STAGING_REPOSITORY_ID=`awk -F'[<>]' '/stagedRepositoryId/{print $3}' response.xml`
50+ export STAGING_REPOSITORY_ID=`awk -F'[<>]' '/stagedRepositoryId/{print $3}' response.xml`
4951 echo "Staging repository created: $STAGING_REPOSITORY_ID"
50- echo "::set-output name=stagingRepositoryId::$STAGING_REPOSITORY_ID"
52+ - name : Checkout repository
53+ uses : actions/checkout@v1
54+ - name : Extract distribution repository URL
55+ id : repository
56+ run : |
57+ if [[ "${{ env.DEPLOY_RELEASE }}" = "true" ]]; then
58+ export REPOSITORY_URL=`mvn exec:exec -q -N -Dexec.executable='echo' -Dexec.args="\\${project.distributionManagement.repository.url}" -DstagingRepositoryId=$STAGING_REPOSITORY_ID`
59+ else
60+ export REPOSITORY_URL=`mvn exec:exec -q -N -Dexec.executable='echo' -Dexec.args="\\${project.distributionManagement.snapshotRepository.url}"`
61+ fi
62+ echo "Repository URL: $REPOSITORY_URL"
63+ echo "::set-output name=repositoryUrl::$REPOSITORY_URL"
5164 linux-x86_64 :
5265 runs-on : ubuntu-20.04
5366 needs : prepare
6780 gcc --version
6881 mvn -version
6982 echo "<settings><servers><server><id>ossrh</id><username>${{ secrets.CI_DEPLOY_USERNAME }}</username><password>${{ secrets.CI_DEPLOY_PASSWORD }}</password></server></servers></settings>" > $HOME/.m2/settings.xml
70- 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 }}
83+ mvn clean install -pl '!tensorflow-framework' -B -U -e -Djavacpp.platform=${{ github.job }} -Djavacpp.platform.extension=${{ matrix.ext }}
84+ - name : Deploy native artifact
85+ if : env.DEPLOY_RELEASE == 'true' || env.DEPLOY_SNAPSHOT == 'true'
86+ 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 }}
7187 macosx-arm64 :
7288 runs-on : macos-14
7389 needs : prepare
@@ -88,7 +104,10 @@ jobs:
88104 clang --version
89105 mvn -version
90106 echo "<settings><servers><server><id>ossrh</id><username>${{ secrets.CI_DEPLOY_USERNAME }}</username><password>${{ secrets.CI_DEPLOY_PASSWORD }}</password></server></servers></settings>" > $HOME/.m2/settings.xml
91- mvn clean install -pl '!tensorflow-framework' -B -U -e -Djavacpp.platform=macosx-arm64 -Djavacpp.platform.extension=${{ matrix.ext }} -am -DstagingRepositoryId=${{ needs.prepare.outputs.stagingRepositoryId }}
107+ mvn clean install -pl '!tensorflow-framework' -B -U -e -Djavacpp.platform=${{ github.job }} -Djavacpp.platform.extension=${{ matrix.ext }}
108+ - name : Deploy native artifact
109+ if : env.DEPLOY_RELEASE == 'true' || env.DEPLOY_SNAPSHOT == 'true'
110+ 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 }}
92111 macosx-x86_64 :
93112 runs-on : macos-11
94113 needs : prepare
@@ -108,9 +127,11 @@ jobs:
108127 clang --version
109128 mvn -version
110129 echo "<settings><servers><server><id>ossrh</id><username>${{ secrets.CI_DEPLOY_USERNAME }}</username><password>${{ secrets.CI_DEPLOY_PASSWORD }}</password></server></servers></settings>" > $HOME/.m2/settings.xml
111- 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 }}
130+ mvn clean install -pl '!tensorflow-framework' -B -U -e -Djavacpp.platform=${{ github.job }} -Djavacpp.platform.extension=${{ matrix.ext }}
131+ - name : Deploy native artifact
132+ if : env.DEPLOY_RELEASE == 'true' || env.DEPLOY_SNAPSHOT == 'true'
133+ 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 }}
112134 windows-x86_64 :
113- if : github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'CI build')
114135 runs-on : windows-2019
115136 needs : prepare
116137 strategy :
@@ -148,10 +169,17 @@ jobs:
148169 call mvn -version
149170 echo ^<settings^>^<servers^>^<server^>^<id^>ossrh^</id^>^<username^>${{ secrets.CI_DEPLOY_USERNAME }}^</username^>^<password^>${{ secrets.CI_DEPLOY_PASSWORD }}^</password^>^</server^>^</servers^>^</settings^> > %USERPROFILE%\.m2\settings.xml
150171 set "SKIP_EXPORT=true"
151- 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 }}
172+ call mvn clean install -pl "!tensorflow-framework" -B -U -e -Djavacpp.platform=${{ github.job }} -Djavacpp.platform.extension=${{ matrix.ext }}
173+ if ERRORLEVEL 1 exit /b
174+ - name : Deploy native artifact
175+ if : env.DEPLOY_RELEASE == 'true' || env.DEPLOY_SNAPSHOT == 'true'
176+ shell : cmd
177+ run : |
178+ call 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 }}
152179 if ERRORLEVEL 1 exit /b
180+
153181 deploy :
154- if : github.event_name == 'push' && (contains( github.ref, ' master') || contains( github.ref, ' staging'))
182+ 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 )
155183 needs : [linux-x86_64, macosx-x86_64, windows-x86_64, macosx-arm64]
156184 runs-on : ubuntu-20.04
157185 steps :
0 commit comments