Skip to content

Commit e242c57

Browse files
committed
chore: migrate Sonatype OSSRH to Central Portal
1 parent 30b6c58 commit e242c57

File tree

3 files changed

+132
-57
lines changed

3 files changed

+132
-57
lines changed

.github/workflows/maven-pr.yml

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,24 @@ jobs:
1111
strategy:
1212
matrix:
1313
java: [ 11, 17 ]
14-
15-
env:
16-
GENERATORS_VERSION_PROPERTY: ""
1714
steps:
18-
- uses: actions/checkout@v3
15+
- uses: actions/checkout@v4
1916
name: git checkout
2017
- name: Set up Java
21-
uses: actions/setup-java@v3
18+
uses: actions/setup-java@v4
2219
with:
2320
java-version: ${{ matrix.java }}
2421
distribution: temurin
25-
cache: maven
22+
server-id: central
23+
server-username: MAVEN_USERNAME
24+
server-password: MAVEN_PASSWORD
25+
- name: Cache local Maven repository
26+
uses: actions/cache@v4
27+
with:
28+
path: ~/.m2/repository
29+
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
30+
restore-keys: |
31+
${{ runner.os }}-maven-
2632
- name: preliminary checks
2733
run: |
2834
docker login --username=${{ secrets.DOCKERHUB_SB_USERNAME }} --password=${{ secrets.DOCKERHUB_SB_PASSWORD }}
@@ -33,20 +39,6 @@ jobs:
3339
/bin/bash ./bin/utils/detect_merge_conflict.sh
3440
# fail if generators contain tab '\t'
3541
/bin/bash ./bin/utils/detect_tab_in_java_class.sh
36-
- uses: s4u/[email protected]
37-
name: setup maven settings.xml
38-
with:
39-
servers: |
40-
[{
41-
"id": "sonatype-nexus-staging",
42-
"username": "${{ secrets.OSSRH_USERNAME }}",
43-
"password": "${{ secrets.OSSRH_TOKEN }}"
44-
},
45-
{
46-
"id": "sonatype-nexus-snapshots",
47-
"username": "${{ secrets.OSSRH_USERNAME }}",
48-
"password": "${{ secrets.OSSRH_TOKEN }}"
49-
}]
5042
- name: Build with Maven
5143
run: |
5244
export MY_POM_VERSION=`mvn -Dswagger-codegen-version=3.0.38 -q -Dexec.executable="echo" -Dexec.args='${projects.version}' --non-recursive org.codehaus.mojo:exec-maven-plugin:1.3.1:exec`
@@ -66,9 +58,13 @@ jobs:
6658
if [[ $CODEGEN_FOUND == '0' ]];
6759
then
6860
echo "codegen version not found"
69-
rm -f maven-metadata.json
70-
curl -o maven-metadata.json -s --max-time 60 --retry 15 --connect-timeout 30 -H "accept: application/json" https://oss.sonatype.org/service/local/repositories/snapshots/content/io/swagger/codegen/v3/swagger-codegen/
71-
LAST_SNAP=`jq '[.data | sort_by(.lastModified) | reverse | .[] | select( .text | contains("3."))]| .[0].text' maven-metadata.json`
61+
rm -f maven-metadata.xml
62+
SNAP_API="https://central.sonatype.com/repository/maven-snapshots"
63+
ARTIFACT_PATH="io/swagger/codegen/v3/swagger-codegen"
64+
ROOT_META="${SNAP_API}/${ARTIFACT_PATH}/maven-metadata.xml"
65+
LATEST_DIR=$(curl -s "$ROOT_META" | grep -oP '(?<=<version>)3\.[^<]+' | sort -V | tail -n1)
66+
SNAP_META="${SNAP_API}/${ARTIFACT_PATH}/${LATEST_DIR}/maven-metadata.xml"
67+
LAST_SNAP=$(curl -s "$SNAP_META" | grep -oP '(?<=<value>)[^<]+' | head -n1)
7268
export LAST_SNAP=${LAST_SNAP:1:${#LAST_SNAP}-2}
7369
echo "LAST_SNAP $LAST_SNAP"
7470
export CODEGEN_VERSION_PROPERTY=-Dswagger-codegen-version=$LAST_SNAP
@@ -78,3 +74,7 @@ jobs:
7874
echo "CODEGEN_VERSION_PROPERTY ${CODEGEN_VERSION_PROPERTY}"
7975
echo "CODEGEN_VERSION_PROPERTY=${CODEGEN_VERSION_PROPERTY}" >> $GITHUB_ENV
8076
./mvnw clean verify -U ${CODEGEN_VERSION_PROPERTY}
77+
env:
78+
GENERATORS_VERSION_PROPERTY: ""
79+
MAVEN_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
80+
MAVEN_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}

.github/workflows/maven-push.yml

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,26 @@ jobs:
1212
matrix:
1313
java: [ 11, 17 ]
1414

15-
env:
16-
GENERATORS_VERSION_PROPERTY: ""
17-
1815
steps:
19-
- uses: actions/checkout@v3
16+
- uses: actions/checkout@v4
2017
name: git checkout
2118
with:
2219
ref: master
2320
- name: Set up Java
24-
uses: actions/setup-java@v3
21+
uses: actions/setup-java@v4
2522
with:
2623
java-version: ${{ matrix.java }}
2724
distribution: temurin
28-
cache: maven
25+
server-id: central
26+
server-username: MAVEN_USERNAME
27+
server-password: MAVEN_PASSWORD
28+
- name: Cache local Maven repository
29+
uses: actions/cache@v4
30+
with:
31+
path: ~/.m2/repository
32+
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
33+
restore-keys: |
34+
${{ runner.os }}-maven-
2935
- name: preliminary checks
3036
run: |
3137
docker login --username=${{ secrets.DOCKERHUB_SB_USERNAME }} --password=${{ secrets.DOCKERHUB_SB_PASSWORD }}
@@ -36,20 +42,6 @@ jobs:
3642
/bin/bash ./bin/utils/detect_merge_conflict.sh
3743
# fail if generators contain tab '\t'
3844
/bin/bash ./bin/utils/detect_tab_in_java_class.sh
39-
- uses: s4u/[email protected]
40-
name: setup maven settings.xml
41-
with:
42-
servers: |
43-
[{
44-
"id": "sonatype-nexus-staging",
45-
"username": "${{ secrets.OSSRH_USERNAME }}",
46-
"password": "${{ secrets.OSSRH_TOKEN }}"
47-
},
48-
{
49-
"id": "sonatype-nexus-snapshots",
50-
"username": "${{ secrets.OSSRH_USERNAME }}",
51-
"password": "${{ secrets.OSSRH_TOKEN }}"
52-
}]
5345
- name: Build with Maven
5446
run: |
5547
export MY_POM_VERSION=`mvn -Dswagger-codegen-version=3.0.38 -q -Dexec.executable="echo" -Dexec.args='${projects.version}' --non-recursive org.codehaus.mojo:exec-maven-plugin:1.3.1:exec`
@@ -69,9 +61,13 @@ jobs:
6961
if [[ $CODEGEN_FOUND == '0' ]];
7062
then
7163
echo "codegen version not found"
72-
rm -f maven-metadata.json
73-
curl -o maven-metadata.json -s --max-time 60 --retry 15 --connect-timeout 30 -H "accept: application/json" https://oss.sonatype.org/service/local/repositories/snapshots/content/io/swagger/codegen/v3/swagger-codegen/
74-
LAST_SNAP=`jq '[.data | sort_by(.lastModified) | reverse | .[] | select( .text | contains("3."))]| .[0].text' maven-metadata.json`
64+
rm -f maven-metadata.xml
65+
SNAP_API="https://central.sonatype.com/repository/maven-snapshots"
66+
ARTIFACT_PATH="io/swagger/codegen/v3/swagger-codegen"
67+
ROOT_META="${SNAP_API}/${ARTIFACT_PATH}/maven-metadata.xml"
68+
LATEST_DIR=$(curl -s "$ROOT_META" | grep -oP '(?<=<version>)3\.[^<]+' | sort -V | tail -n1)
69+
SNAP_META="${SNAP_API}/${ARTIFACT_PATH}/${LATEST_DIR}/maven-metadata.xml"
70+
LAST_SNAP=$(curl -s "$SNAP_META" | grep -oP '(?<=<value>)[^<]+' | head -n1)
7571
export LAST_SNAP=${LAST_SNAP:1:${#LAST_SNAP}-2}
7672
echo "LAST_SNAP $LAST_SNAP"
7773
export CODEGEN_VERSION_PROPERTY=-Dswagger-codegen-version=$LAST_SNAP
@@ -92,4 +88,7 @@ jobs:
9288
else
9389
echo "not deploying release: " ${MY_POM_VERSION}
9490
fi
95-
91+
env:
92+
MAVEN_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
93+
MAVEN_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
94+
GENERATORS_VERSION_PROPERTY: ""

pom.xml

Lines changed: 86 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,37 @@
22
<project xmlns="http://maven.apache.org/POM/4.0.0"
33
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
44
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5-
6-
<parent>
7-
<groupId>org.sonatype.oss</groupId>
8-
<artifactId>oss-parent</artifactId>
9-
<version>5</version>
10-
</parent>
115
<modelVersion>4.0.0</modelVersion>
12-
136
<groupId>io.swagger.codegen.v3</groupId>
147
<artifactId>swagger-codegen-generators</artifactId>
15-
<version>1.0.56</version>
8+
<name>swagger-codegen-generators</name>
9+
<description>swagger-codegen-generators</description>
10+
<url>https://github.com/swagger-api/swagger-codegen-generators</url>
11+
<version>1.0.57-SNAPSHOT</version>
1612
<packaging>jar</packaging>
17-
13+
<scm>
14+
<connection>scm:git:[email protected]:swagger-api/swagger-codegen-generators.git</connection>
15+
<developerConnection>scm:git:[email protected]:swagger-api/swagger-codegen-generators.git</developerConnection>
16+
<url>https://github.com/swagger-api/swagger-codegen-generators</url>
17+
</scm>
18+
<issueManagement>
19+
<system>github</system>
20+
<url>https://github.com/swagger-api/swagger-codegen-generators/issues</url>
21+
</issueManagement>
22+
<licenses>
23+
<license>
24+
<name>Apache License 2.0</name>
25+
<url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
26+
<distribution>repo</distribution>
27+
</license>
28+
</licenses>
29+
<developers>
30+
<developer>
31+
<id>frantuma</id>
32+
<name>Francesco Tumanischvili</name>
33+
<email>[email protected]</email>
34+
</developer>
35+
</developers>
1836
<build>
1937
<plugins>
2038
<plugin>
@@ -76,8 +94,66 @@
7694
<argLine>-javaagent:${settings.localRepository}/org/jmockit/jmockit/${jmockit-version}/jmockit-${jmockit-version}.jar -XX:+IgnoreUnrecognizedVMOptions --add-opens=java.base/java.util=ALL-UNNAMED</argLine>
7795
</configuration>
7896
</plugin>
97+
<plugin>
98+
<groupId>org.sonatype.central</groupId>
99+
<artifactId>central-publishing-maven-plugin</artifactId>
100+
<version>0.7.0</version>
101+
<extensions>true</extensions>
102+
<configuration>
103+
<publishingServerId>central</publishingServerId>
104+
<autoPublish>true</autoPublish>
105+
<waitUntil>published</waitUntil>
106+
<waitMaxTime>3600</waitMaxTime>
107+
</configuration>
108+
</plugin>
79109
</plugins>
110+
<pluginManagement>
111+
<plugins>
112+
<plugin>
113+
<groupId>org.apache.maven.plugins</groupId>
114+
<artifactId>maven-gpg-plugin</artifactId>
115+
<version>1.6</version>
116+
<configuration>
117+
<!-- Prevent `gpg` from using pinentry programs -->
118+
<gpgArguments>
119+
<arg>--pinentry-mode</arg>
120+
<arg>loopback</arg>
121+
</gpgArguments>
122+
</configuration>
123+
</plugin>
124+
</plugins>
125+
</pluginManagement>
80126
</build>
127+
<profiles>
128+
<profile>
129+
<id>release</id>
130+
<build>
131+
<plugins>
132+
<plugin>
133+
<groupId>org.apache.maven.plugins</groupId>
134+
<artifactId>maven-gpg-plugin</artifactId>
135+
<version>1.6</version>
136+
<configuration>
137+
<!-- Prevent `gpg` from using pinentry programs -->
138+
<gpgArguments>
139+
<arg>--pinentry-mode</arg>
140+
<arg>loopback</arg>
141+
</gpgArguments>
142+
</configuration>
143+
<executions>
144+
<execution>
145+
<id>sign-artifacts</id>
146+
<phase>verify</phase>
147+
<goals>
148+
<goal>sign</goal>
149+
</goals>
150+
</execution>
151+
</executions>
152+
</plugin>
153+
</plugins>
154+
</build>
155+
</profile>
156+
</profiles>
81157
<dependencyManagement>
82158
<dependencies>
83159
<!-- swagger-core v2 -->
@@ -280,7 +356,7 @@
280356
<surefire-version>3.5.2</surefire-version>
281357
<jmockit-version>1.49</jmockit-version>
282358
<reflections-version>0.10.2</reflections-version>
283-
359+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
284360
</properties>
285361

286362
</project>

0 commit comments

Comments
 (0)