Skip to content

Commit 160ff2c

Browse files
authored
Merge pull request #522 from federicorispo/javax-script
ci: build and publish javax flavour
2 parents 7cc2f65 + fce8e10 commit 160ff2c

11 files changed

+219
-114
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
#!/bin/bash
22

3-
MODULE_SUFFIX="${GITHUB_REF##*/}"
4-
53
addSuffix() {
64
local result
75
result=$(grep include settings.gradle | awk '{print $2}' | tr -d "'" | tr -d ':')
@@ -13,11 +11,11 @@ addSuffix() {
1311

1412
updateLocalDependencies() {
1513
for module in "${modules[@]}"; do
16-
cp -rf "$module" "$module"-"$MODULE_SUFFIX"
14+
cp -rf "$module" "$module"-javax
1715
rm -rf "$module"
1816

1917
for dependency in "${modules[@]}"; do
20-
sed -i -E "s/project\(('|\"):${dependency}('|\")\)/project\(':${dependency}-${MODULE_SUFFIX}'\)/" "$module"-"$MODULE_SUFFIX"/build.gradle
18+
sed -i -E "s/project\(('|\"):${dependency}('|\")\)/project\(':${dependency}-javax'\)/" "$module"-"javax"/build.gradle
2119
done
2220
done
2321

@@ -26,14 +24,14 @@ updateLocalDependencies() {
2624

2725
updateGradleSettings() {
2826
for module in "${modules[@]}"; do
29-
echo "Replace ${module} with ${module}-${MODULE_SUFFIX} in settings.gradle"
30-
sed -i -E "s/('|\"):${module}('|\")/':${module}-${MODULE_SUFFIX}'/" settings.gradle
27+
echo "Replace ${module} with ${module}-javax in settings.gradle"
28+
sed -i -E "s/('|\"):${module}('|\")/':${module}-javax'/" settings.gradle
3129
done
3230

3331
cat settings.gradle
3432
}
3533

36-
echo "Add suffix '-$MODULE_SUFFIX' to modules"
34+
echo "Add suffix -javax to modules"
3735
addSuffix
3836

3937
ls -lh

.github/release.sh

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22
set -ev
33

4-
BRANCH="${GITHUB_REF##*/}"
4+
FLAVOUR="${1}"
55

66
removeSnapshots() {
77
sed -i 's/-SNAPSHOT//' gradle.properties
@@ -10,8 +10,8 @@ removeSnapshots() {
1010
echo "Publishing release to Maven Central"
1111
removeSnapshots
1212

13-
if [[ "${BRANCH}" != "master" ]]; then
14-
.github/add-module-suffix.sh
13+
if [ "${FLAVOUR}" == 'javax' ]; then
14+
.github/add-javax-suffix.sh
1515
fi
1616

1717
./gradlew clean build publishToSonatype closeAndReleaseSonatypeStagingRepository

.github/replaceJakartaWithJavax.sh

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#!/bin/bash
2+
3+
# Set jdk11 as source and target
4+
sed -i 's/SOURCE_COMPATIBILITY=.*/SOURCE_COMPATIBILITY=11/' gradle.properties
5+
sed -i 's/TARGET_COMPATIBILITY=.*/TARGET_COMPATIBILITY=11/' gradle.properties
6+
7+
# Replace jakarta imports and dependencies with javax
8+
grep -rl 'import jakarta' ./graphql-java-servlet | xargs sed -i 's/import jakarta/import javax/g'
9+
sed -i 's/.*jakarta.websocket:jakarta.websocket-client-api.*//' graphql-java-servlet/build.gradle
10+
sed -i \
11+
's/jakarta.servlet:jakarta.servlet-api.*/javax.servlet:javax.servlet-api:$LIB_JAVAX_SERVLET"/' \
12+
graphql-java-servlet/build.gradle
13+
sed -i \
14+
's/jakarta.websocket.*/javax.websocket:javax.websocket-api:$LIB_JAVAX_WEBSOCKET"/' \
15+
graphql-java-servlet/build.gradle
16+
17+
# Final check if there are something else to replace
18+
grep -rl 'jakarta' ./graphql-java-servlet | xargs sed -i 's/jakarta/javax/g'
19+
20+
# Set the version 5 for spring framework
21+
sed -i \
22+
's/org.springframework:spring-test.*/org.springframework:spring-test:$LIB_SPRINGFRAMEWORK_5"/' \
23+
graphql-java-servlet/build.gradle
24+
sed -i \
25+
's/org.springframework:spring-web.*/org.springframework:spring-web:$LIB_SPRINGFRAMEWORK_5"/' \
26+
graphql-java-servlet/build.gradle
27+
28+
echo "Replaced jakarta occurrences with javax"

.github/tag-release.sh

+1-7
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
#!/bin/bash
22
set -ev
33

4-
BRANCH="${GITHUB_REF##*/}"
5-
64
getVersion() {
75
./gradlew properties -q | grep -E "^version" | awk '{print $2}' | tr -d '[:space:]'
86
}
@@ -13,11 +11,7 @@ removeSnapshots() {
1311

1412
commitRelease() {
1513
local APP_VERSION
16-
if "${BRANCH}" == "master"; then
17-
APP_VERSION=$(getVersion)
18-
else
19-
APP_VERSION=$(getVersion)-"${BRANCH}"
20-
fi
14+
APP_VERSION=$(getVersion)
2115
git commit -a -m "Update version for release"
2216
git tag -a "v${APP_VERSION}" -m "Tag release version"
2317
}

.github/workflows/release.yml

+76-7
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ jobs:
99
- uses: actions/checkout@v3
1010
- uses: gradle/wrapper-validation-action@v1
1111

12-
test:
13-
name: Test run
12+
test-jakarta:
13+
name: Test run jakarta
1414
needs: validation
1515
runs-on: ubuntu-latest
1616
steps:
@@ -37,9 +37,9 @@ jobs:
3737
- name: Gradle Check
3838
run: ./gradlew --info check
3939

40-
build:
41-
name: Publish release
42-
needs: test
40+
build-jakarta:
41+
name: Publish release jakarta
42+
needs: test-jakarta
4343
runs-on: ubuntu-latest
4444
steps:
4545
- name: Checkout
@@ -74,9 +74,78 @@ jobs:
7474
OSS_USER_TOKEN_PASS: ${{ secrets.OSS_USER_TOKEN_PASS }}
7575
run: .github/release.sh
7676

77+
test-javax:
78+
name: Test run javax
79+
needs: validation
80+
runs-on: ubuntu-latest
81+
steps:
82+
- name: Checkout
83+
uses: actions/checkout@v3
84+
- name: Setup Java
85+
uses: actions/setup-java@v3
86+
with:
87+
distribution: 'zulu'
88+
java-version: 11
89+
- name: Cache Gradle
90+
uses: actions/cache@v3
91+
env:
92+
java-version: 11
93+
with:
94+
path: |
95+
~/.gradle/caches
96+
~/.gradle/wrapper
97+
key: ${{ runner.os }}-${{ env.java-version }}-gradle-${{ hashFiles('**/*.gradle*') }}
98+
restore-keys: |
99+
${{ runner.os }}-${{ env.java-version }}-gradle-
100+
- name: Make gradlew executable
101+
run: chmod +x ./gradlew
102+
- name: Replace jakarta with javax
103+
run: .github/replaceJakartaWithJavax.sh
104+
- name: Gradle Check
105+
run: ./gradlew --info check
106+
107+
build-javax:
108+
name: Publish release javax
109+
needs: test-javax
110+
runs-on: ubuntu-latest
111+
steps:
112+
- name: Checkout
113+
uses: actions/checkout@v3
114+
- name: Setup Java
115+
uses: actions/setup-java@v3
116+
with:
117+
distribution: 'zulu'
118+
java-version: 11
119+
120+
- name: Cache Gradle
121+
uses: actions/cache@v3
122+
env:
123+
java-version: 11
124+
with:
125+
path: |
126+
~/.gradle/caches
127+
~/.gradle/wrapper
128+
key: ${{ runner.os }}-${{ env.java-version }}-gradle-${{ hashFiles('**/*.gradle*') }}
129+
restore-keys: |
130+
${{ runner.os }}-${{ env.java-version }}-gradle-
131+
- name: Prepare environment
132+
env:
133+
GPG_KEY_CONTENTS: ${{ secrets.GPG_KEY_CONTENTS }}
134+
SIGNING_SECRET_KEY_RING_FILE: ${{ secrets.GPG_SIGNING_SECRET_KEY_RING_FILE }}
135+
run: sudo bash -c "echo '$GPG_KEY_CONTENTS' | base64 -d > '$SIGNING_SECRET_KEY_RING_FILE'"
136+
- name: Replace jakarta with javax
137+
run: .github/replaceJakartaWithJavax.sh
138+
- name: Publish release
139+
env:
140+
SIGNING_KEY_ID: ${{ secrets.GPG_SIGNING_KEY_ID }}
141+
SIGNING_PASSWORD: ${{ secrets.GPG_SIGNING_PASSWORD }}
142+
SIGNING_SECRET_KEY_RING_FILE: ${{ secrets.GPG_SIGNING_SECRET_KEY_RING_FILE }}
143+
OSS_USER_TOKEN_KEY: ${{ secrets.OSS_USER_TOKEN_KEY }}
144+
OSS_USER_TOKEN_PASS: ${{ secrets.OSS_USER_TOKEN_PASS }}
145+
run: .github/release.sh javax
77146
tag:
78147
name: Tag release
79-
needs: build
148+
needs: [ build-jakarta, build-javax ]
80149
runs-on: ubuntu-latest
81150
steps:
82151
- name: Checkout
@@ -98,4 +167,4 @@ jobs:
98167
restore-keys: |
99168
${{ runner.os }}-${{ env.java-version }}-gradle-
100169
- name: Tag release
101-
run: .github/tag-release.sh
170+
run: .github/tag-release.sh

.github/workflows/snapshot-suffix.yml

-74
This file was deleted.

.github/workflows/snapshot.yml

+71-5
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ jobs:
1212
- uses: actions/checkout@v3
1313
- uses: gradle/wrapper-validation-action@v1
1414

15-
test:
16-
name: Test run
15+
test-jakarta:
16+
name: Test run jakarta
1717
needs: validation
1818
runs-on: ubuntu-latest
1919
steps:
@@ -40,9 +40,9 @@ jobs:
4040
- name: Gradle Check
4141
run: ./gradlew --info check
4242

43-
build:
44-
name: Publish snapshot
45-
needs: test
43+
build-jakarta:
44+
name: Publish snapshot jakarta
45+
needs: test-jakarta
4646
runs-on: ubuntu-latest
4747
steps:
4848
- name: Checkout
@@ -72,6 +72,72 @@ jobs:
7272
OSS_USER_TOKEN_PASS: ${{ secrets.OSS_USER_TOKEN_PASS }}
7373
run: ./gradlew clean build publish -x test
7474

75+
test-javax:
76+
name: Test run javax
77+
needs: validation
78+
runs-on: ubuntu-latest
79+
steps:
80+
- name: Checkout
81+
uses: actions/checkout@v3
82+
- name: Setup Java
83+
uses: actions/setup-java@v3
84+
with:
85+
distribution: 'zulu'
86+
java-version: 11
87+
- name: Cache Gradle
88+
uses: actions/cache@v3
89+
env:
90+
java-version: 11
91+
with:
92+
path: |
93+
~/.gradle/caches
94+
~/.gradle/wrapper
95+
key: ${{ runner.os }}-${{ env.java-version }}-gradle-${{ hashFiles('**/*.gradle*') }}
96+
restore-keys: |
97+
${{ runner.os }}-${{ env.java-version }}-gradle-
98+
- name: Make gradlew executable
99+
run: chmod +x ./gradlew
100+
- name: Replace jakarta with javax
101+
run: .github/replaceJakartaWithJavax.sh
102+
- name: Gradle Check
103+
run: ./gradlew --info check
104+
105+
build-javax:
106+
name: Publish snapshot javax
107+
needs: test-javax
108+
runs-on: ubuntu-latest
109+
steps:
110+
- name: Checkout
111+
uses: actions/checkout@v3
112+
- name: Setup Java
113+
uses: actions/setup-java@v3
114+
with:
115+
distribution: 'zulu'
116+
java-version: 11
117+
- name: Cache Gradle
118+
uses: actions/cache@v3
119+
env:
120+
java-version: 11
121+
with:
122+
path: |
123+
~/.gradle/caches
124+
~/.gradle/wrapper
125+
key: ${{ runner.os }}-${{ env.java-version }}-gradle-${{ hashFiles('**/*.gradle*') }}
126+
restore-keys: |
127+
${{ runner.os }}-${{ env.java-version }}-gradle-
128+
- name: Make gradlew executable
129+
run: chmod +x ./gradlew
130+
- name: Replace jakarta with javax
131+
run: .github/replaceJakartaWithJavax.sh
132+
- name: Add suffix to modules
133+
run: .github/add-javax-suffix.sh
134+
- name: Gradle Publish Snapshot
135+
if: env.OSS_USER_TOKEN_KEY != null
136+
env:
137+
OSS_USER_TOKEN_KEY: ${{ secrets.OSS_USER_TOKEN_KEY }}
138+
OSS_USER_TOKEN_PASS: ${{ secrets.OSS_USER_TOKEN_PASS }}
139+
run: ./gradlew clean build publish -x test
140+
75141
sonar:
76142
name: Sonar analysis
77143
needs: validation

0 commit comments

Comments
 (0)