3
3
push :
4
4
branches :
5
5
- master
6
+ - r[0-9]+.*
6
7
pull_request :
7
8
branches :
8
9
- master
9
10
types : [opened, reopened, synchronize, labeled, unlabeled]
11
+ env :
12
+ STAGING_PROFILE_ID : 46f80d0729c92d
13
+ NATIVE_BUILD_PROJECTS : tensorflow-core/tensorflow-core-generator,tensorflow-core/tensorflow-core-api
10
14
jobs :
11
15
quick-build :
12
16
if : github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'CI build')
@@ -19,10 +23,27 @@ jobs:
19
23
git --version
20
24
mvn -version
21
25
mvn clean install -Pdev -B -U -e
26
+ prepare :
27
+ runs-on : ubuntu-latest
28
+ outputs :
29
+ stagingRepositoryId : ${{ steps.staging.outputs.stagingRepositoryId }}
30
+ steps :
31
+ - name : Create staging repository
32
+ if : github.event_name == 'push' && startsWith(github.ref, 'refs/heads/r')
33
+ id : staging
34
+ run : |
35
+ echo "Creating staging repository with profile $STAGING_PROFILE_ID"
36
+ echo "<promoteRequest><data><description>Releasing TF Java - created by CI build</description></data></promoteRequest>" > request.xml
37
+ curl -X POST -d @request.xml -s -o response.xml -u ${{ secrets.CI_DEPLOY_USERNAME }}:${{ secrets.CI_DEPLOY_PASSWORD }} -H "Content-Type:application/xml" \
38
+ https://oss.sonatype.org/service/local/staging/profiles/$STAGING_PROFILE_ID/start
39
+ STAGING_REPOSITORY_ID=`awk -F'[<>]' '/stagedRepositoryId/{print $3}' response.xml`
40
+ echo "Staging repository created: $STAGING_REPOSITORY_ID"
41
+ echo "::set-output name=stagingRepositoryId::$STAGING_REPOSITORY_ID"
22
42
linux-x86_64 :
23
43
if : github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'CI build')
24
44
runs-on : ubuntu-latest
25
45
container : centos:7
46
+ needs : prepare
26
47
strategy :
27
48
matrix :
28
49
ext : ["", -mkl, -gpu, -mkl-gpu]
@@ -66,11 +87,12 @@ jobs:
66
87
[[ "${{ github.event_name }}" == "push" ]] && MAVEN_PHASE=deploy || MAVEN_PHASE=install
67
88
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
68
89
echo Executing Maven $MAVEN_PHASE
69
- mvn clean $MAVEN_PHASE -Possrh - B -U -e -Djavacpp.platform=linux-x86_64 -Djavacpp.platform.extension=${{ matrix.ext }}
90
+ mvn clean $MAVEN_PHASE -B -U -e -Djavacpp.platform=linux-x86_64 -Djavacpp.platform.extension=${{ matrix.ext }} -pl $NATIVE_BUILD_PROJECTS -am -DstagingRepositoryId=${{ needs.prepare.outputs.stagingRepositoryId }}
70
91
df -h
71
92
macosx-x86_64 :
72
93
if : github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'CI build')
73
94
runs-on : macos-latest
95
+ needs : prepare
74
96
strategy :
75
97
matrix :
76
98
ext : ["", -mkl]
@@ -95,14 +117,15 @@ jobs:
95
117
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
96
118
df -h
97
119
echo Executing Maven $MAVEN_PHASE
98
- mvn clean $MAVEN_PHASE -Possrh - B -U -e -Djavacpp.platform=macosx-x86_64 -Djavacpp.platform.extension=${{ matrix.ext }}
120
+ mvn clean $MAVEN_PHASE -B -U -e -Djavacpp.platform=macosx-x86_64 -Djavacpp.platform.extension=${{ matrix.ext }} -pl $NATIVE_BUILD_PROJECTS -am -DstagingRepositoryId=${{ needs.prepare.outputs.stagingRepositoryId }}
99
121
df -h
100
122
windows-x86_64 :
101
123
if : github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'CI build')
102
124
runs-on : windows-latest
103
- # strategy:
104
- # matrix:
105
- # ext: ["", -mkl, -gpu, -mkl-gpu]
125
+ needs : prepare
126
+ strategy :
127
+ matrix :
128
+ ext : ["", -mkl] # -gpu, -mkl-gpu]
106
129
steps :
107
130
- name : Configure page file
108
131
@@ -153,29 +176,18 @@ jobs:
153
176
df -h
154
177
wmic pagefile list /format:list
155
178
echo Executing Maven %MAVEN_PHASE%
156
- call mvn clean %MAVEN_PHASE% -Possrh - B -U -e -Djavacpp.platform=windows-x86_64 -Djavacpp.platform.extension=${{ matrix.ext }}
179
+ call mvn clean %MAVEN_PHASE% -B -U -e -Djavacpp.platform=windows-x86_64 -Djavacpp.platform.extension=${{ matrix.ext }} -pl %NATIVE_BUILD_PROJECTS% -am -DstagingRepositoryId=${{ needs.prepare.outputs.stagingRepositoryId }}
157
180
if ERRORLEVEL 1 exit /b
158
181
df -h
159
182
wmic pagefile list /format:list
160
- redeploy :
161
- if : github.event_name == 'push'
183
+ deploy :
184
+ if : github.event_name == 'push' && contains(github.ref, 'master')
162
185
needs : [linux-x86_64, macosx-x86_64, windows-x86_64]
163
186
runs-on : ubuntu-latest
164
187
steps :
165
188
- name : Checkout repository
166
189
uses : actions/checkout@v1
167
- - name : Redeploy snapshot artifacts
190
+ - name : Deploy snapshot artifacts
168
191
run : |
169
- cd tensorflow-core
170
- mvn dependency:resolve -Possrh -Predeploy -N -B -U -e
171
- cp $HOME/.m2/repository/org/tensorflow/tensorflow-core-api/*-SNAPSHOT/tensorflow-core-api-*-SNAPSHOT*.jar .
172
- for f in *.jar; do
173
- if [[ $f =~ tensorflow-core-api-.*SNAPSHOT-(.*).jar ]]; then
174
- [[ -n $FILES ]] && FILES=$FILES,$f || FILES=$f
175
- [[ -n $TYPES ]] && TYPES=$TYPES,jar || TYPES=jar
176
- [[ -n $CLASSIFIERS ]] && CLASSIFIERS=$CLASSIFIERS,${BASH_REMATCH[1]} || CLASSIFIERS=${BASH_REMATCH[1]}
177
- fi
178
- done
179
- 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
180
- unzip -o tensorflow-core-api-*-SNAPSHOT.jar META-INF/maven/org.tensorflow/tensorflow-core-api/pom.xml
181
- mvn clean deploy -Possrh -Predeploy -N -B -U -e -Dfiles=$FILES -Dtypes=$TYPES -Dclassifiers=$CLASSIFIERS
192
+ echo "<settings><servers><server><id>ossrh</id><username>${{ secrets.CI_DEPLOY_USERNAME }}</username><password>${{ secrets.CI_DEPLOY_PASSWORD }}</password></server></servers></settings>" > settings.xml
193
+ bash deploy.sh
0 commit comments