Skip to content

Commit 6c63e42

Browse files
authored
Publish snapshots to Maven Central (#639)
1 parent 2118497 commit 6c63e42

File tree

2 files changed

+17
-35
lines changed

2 files changed

+17
-35
lines changed

.github/workflows/build.yml

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -54,16 +54,6 @@ jobs:
5454
echo "::set-output name=stagingRepositoryId::$STAGING_REPOSITORY_ID"
5555
- name: Checkout repository
5656
uses: actions/checkout@v6
57-
- name: Extract distribution repository URL
58-
id: repository
59-
run: |
60-
if [[ "${{ env.DEPLOY_RELEASE }}" = "true" ]]; then
61-
export REPOSITORY_URL=`mvn exec:exec -q -N -Dexec.executable='echo' -Dexec.args="\\${project.distributionManagement.repository.url}" -DstagingRepositoryId=${{ steps.staging.outputs.stagingRepositoryId }}`
62-
else
63-
export REPOSITORY_URL=`mvn exec:exec -q -N -Dexec.executable='echo' -Dexec.args="\\${project.distributionManagement.snapshotRepository.url}"`
64-
fi
65-
echo "Repository URL: $REPOSITORY_URL"
66-
echo "::set-output name=repositoryUrl::$REPOSITORY_URL"
6757
linux-arm64:
6858
runs-on: ubuntu-2204-arm64-2c
6959
needs: prepare
@@ -87,11 +77,11 @@ jobs:
8777
run: |
8878
gcc --version
8979
mvn -version
90-
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
80+
echo "<settings><servers><server><id>central</id><username>${{ secrets.CI_DEPLOY_USERNAME }}</username><password>${{ secrets.CI_DEPLOY_PASSWORD }}</password></server></servers></settings>" > $HOME/.m2/settings.xml
9181
mvn clean install -pl '!tensorflow-framework' -B -U -e -Djavacpp.platform=${{ github.job }} -Djavacpp.platform.extension=${{ matrix.ext }}
9282
- name: Deploy native artifact
9383
if: env.DEPLOY_RELEASE == 'true' || env.DEPLOY_SNAPSHOT == 'true'
94-
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 }}
84+
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 }}
9585
linux-x86_64:
9686
runs-on: ubuntu-22.04
9787
needs: prepare
@@ -110,11 +100,11 @@ jobs:
110100
run: |
111101
gcc --version
112102
mvn -version
113-
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
103+
echo "<settings><servers><server><id>central</id><username>${{ secrets.CI_DEPLOY_USERNAME }}</username><password>${{ secrets.CI_DEPLOY_PASSWORD }}</password></server></servers></settings>" > $HOME/.m2/settings.xml
114104
mvn clean install -pl '!tensorflow-framework' -B -U -e -Djavacpp.platform=${{ github.job }} -Djavacpp.platform.extension=${{ matrix.ext }}
115105
- name: Deploy native artifact
116106
if: env.DEPLOY_RELEASE == 'true' || env.DEPLOY_SNAPSHOT == 'true'
117-
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 }}
107+
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 }}
118108
macosx-arm64:
119109
runs-on: macos-14
120110
needs: prepare
@@ -134,11 +124,11 @@ jobs:
134124
run: |
135125
clang --version
136126
mvn -version
137-
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
127+
echo "<settings><servers><server><id>central</id><username>${{ secrets.CI_DEPLOY_USERNAME }}</username><password>${{ secrets.CI_DEPLOY_PASSWORD }}</password></server></servers></settings>" > $HOME/.m2/settings.xml
138128
mvn clean install -pl '!tensorflow-framework' -B -U -e -Djavacpp.platform=${{ github.job }} -Djavacpp.platform.extension=${{ matrix.ext }}
139129
- name: Deploy native artifact
140130
if: env.DEPLOY_RELEASE == 'true' || env.DEPLOY_SNAPSHOT == 'true'
141-
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 }}
131+
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 }}
142132
deploy:
143133
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)
144134
needs: [linux-x86_64, macosx-arm64, linux-arm64]
@@ -158,5 +148,5 @@ jobs:
158148
mvn clean install -B -U -e -Pdeploying
159149
- name: Deploy snapshot artifacts
160150
run: |
161-
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
151+
echo "<settings><servers><server><id>central</id><username>${{ secrets.CI_DEPLOY_USERNAME }}</username><password>${{ secrets.CI_DEPLOY_PASSWORD }}</password></server></servers></settings>" > $HOME/.m2/settings.xml
162152
mvn deploy -Pdeploying -B -e -Dmaven.test.skip=true

pom.xml

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -81,24 +81,6 @@
8181
</pluginRepository>
8282
</pluginRepositories>
8383

84-
<!--
85-
Deploys to OSSRH/Maven central
86-
We don't need to deploy to Bintray, as JCenter will eventually proxy artifacts upload in Maven
87-
central. See Sonatype requirements at http://central.sonatype.org/pages/apache-maven.html
88-
-->
89-
<distributionManagement>
90-
<snapshotRepository>
91-
<id>ossrh</id>
92-
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
93-
</snapshotRepository>
94-
<repository>
95-
<id>ossrh</id>
96-
<url>
97-
https://oss.sonatype.org/service/local/staging/deployByRepositoryId/${stagingRepositoryId}/
98-
</url>
99-
</repository>
100-
</distributionManagement>
101-
10284
<dependencyManagement>
10385
<dependencies>
10486
<dependency>
@@ -512,6 +494,16 @@
512494
</execution>
513495
</executions>
514496
</plugin>
497+
<!-- Deploy to Maven central -->
498+
<plugin>
499+
<groupId>org.sonatype.central</groupId>
500+
<artifactId>central-publishing-maven-plugin</artifactId>
501+
<version>0.9.0</version>
502+
<extensions>true</extensions>
503+
<configuration>
504+
<publishingServerId>central</publishingServerId>
505+
</configuration>
506+
</plugin>
515507
<!-- GPG signed components: http://central.sonatype.org/pages/apache-maven.html#gpg-signed-components -->
516508
<plugin>
517509
<groupId>org.apache.maven.plugins</groupId>

0 commit comments

Comments
 (0)