Skip to content

ci: build and publish javax flavour #522

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jun 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 5 additions & 7 deletions .github/add-module-suffix.sh → .github/add-javax-suffix.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
#!/bin/bash

MODULE_SUFFIX="${GITHUB_REF##*/}"

addSuffix() {
local result
result=$(grep include settings.gradle | awk '{print $2}' | tr -d "'" | tr -d ':')
Expand All @@ -13,11 +11,11 @@ addSuffix() {

updateLocalDependencies() {
for module in "${modules[@]}"; do
cp -rf "$module" "$module"-"$MODULE_SUFFIX"
cp -rf "$module" "$module"-javax
rm -rf "$module"

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

Expand All @@ -26,14 +24,14 @@ updateLocalDependencies() {

updateGradleSettings() {
for module in "${modules[@]}"; do
echo "Replace ${module} with ${module}-${MODULE_SUFFIX} in settings.gradle"
sed -i -E "s/('|\"):${module}('|\")/':${module}-${MODULE_SUFFIX}'/" settings.gradle
echo "Replace ${module} with ${module}-javax in settings.gradle"
sed -i -E "s/('|\"):${module}('|\")/':${module}-javax'/" settings.gradle
done

cat settings.gradle
}

echo "Add suffix '-$MODULE_SUFFIX' to modules"
echo "Add suffix -javax to modules"
addSuffix

ls -lh
6 changes: 3 additions & 3 deletions .github/release.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash
set -ev

BRANCH="${GITHUB_REF##*/}"
FLAVOUR="${1}"

removeSnapshots() {
sed -i 's/-SNAPSHOT//' gradle.properties
Expand All @@ -10,8 +10,8 @@ removeSnapshots() {
echo "Publishing release to Maven Central"
removeSnapshots

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

./gradlew clean build publishToSonatype closeAndReleaseSonatypeStagingRepository
28 changes: 28 additions & 0 deletions .github/replaceJakartaWithJavax.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/bin/bash

# Set jdk11 as source and target
sed -i 's/SOURCE_COMPATIBILITY=.*/SOURCE_COMPATIBILITY=11/' gradle.properties
sed -i 's/TARGET_COMPATIBILITY=.*/TARGET_COMPATIBILITY=11/' gradle.properties

# Replace jakarta imports and dependencies with javax
grep -rl 'import jakarta' ./graphql-java-servlet | xargs sed -i 's/import jakarta/import javax/g'
sed -i 's/.*jakarta.websocket:jakarta.websocket-client-api.*//' graphql-java-servlet/build.gradle
sed -i \
's/jakarta.servlet:jakarta.servlet-api.*/javax.servlet:javax.servlet-api:$LIB_JAVAX_SERVLET"/' \
graphql-java-servlet/build.gradle
sed -i \
's/jakarta.websocket.*/javax.websocket:javax.websocket-api:$LIB_JAVAX_WEBSOCKET"/' \
graphql-java-servlet/build.gradle

# Final check if there are something else to replace
grep -rl 'jakarta' ./graphql-java-servlet | xargs sed -i 's/jakarta/javax/g'

# Set the version 5 for spring framework
sed -i \
's/org.springframework:spring-test.*/org.springframework:spring-test:$LIB_SPRINGFRAMEWORK_5"/' \
graphql-java-servlet/build.gradle
sed -i \
's/org.springframework:spring-web.*/org.springframework:spring-web:$LIB_SPRINGFRAMEWORK_5"/' \
graphql-java-servlet/build.gradle

echo "Replaced jakarta occurrences with javax"
8 changes: 1 addition & 7 deletions .github/tag-release.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
#!/bin/bash
set -ev

BRANCH="${GITHUB_REF##*/}"

getVersion() {
./gradlew properties -q | grep -E "^version" | awk '{print $2}' | tr -d '[:space:]'
}
Expand All @@ -13,11 +11,7 @@ removeSnapshots() {

commitRelease() {
local APP_VERSION
if "${BRANCH}" == "master"; then
APP_VERSION=$(getVersion)
else
APP_VERSION=$(getVersion)-"${BRANCH}"
fi
APP_VERSION=$(getVersion)
git commit -a -m "Update version for release"
git tag -a "v${APP_VERSION}" -m "Tag release version"
}
Expand Down
83 changes: 76 additions & 7 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ jobs:
- uses: actions/checkout@v3
- uses: gradle/wrapper-validation-action@v1

test:
name: Test run
test-jakarta:
name: Test run jakarta
needs: validation
runs-on: ubuntu-latest
steps:
Expand All @@ -37,9 +37,9 @@ jobs:
- name: Gradle Check
run: ./gradlew --info check

build:
name: Publish release
needs: test
build-jakarta:
name: Publish release jakarta
needs: test-jakarta
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand Down Expand Up @@ -74,9 +74,78 @@ jobs:
OSS_USER_TOKEN_PASS: ${{ secrets.OSS_USER_TOKEN_PASS }}
run: .github/release.sh

test-javax:
name: Test run javax
needs: validation
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 11
- name: Cache Gradle
uses: actions/cache@v3
env:
java-version: 11
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-${{ env.java-version }}-gradle-${{ hashFiles('**/*.gradle*') }}
restore-keys: |
${{ runner.os }}-${{ env.java-version }}-gradle-
- name: Make gradlew executable
run: chmod +x ./gradlew
- name: Replace jakarta with javax
run: .github/replaceJakartaWithJavax.sh
- name: Gradle Check
run: ./gradlew --info check

build-javax:
name: Publish release javax
needs: test-javax
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 11

- name: Cache Gradle
uses: actions/cache@v3
env:
java-version: 11
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-${{ env.java-version }}-gradle-${{ hashFiles('**/*.gradle*') }}
restore-keys: |
${{ runner.os }}-${{ env.java-version }}-gradle-
- name: Prepare environment
env:
GPG_KEY_CONTENTS: ${{ secrets.GPG_KEY_CONTENTS }}
SIGNING_SECRET_KEY_RING_FILE: ${{ secrets.GPG_SIGNING_SECRET_KEY_RING_FILE }}
run: sudo bash -c "echo '$GPG_KEY_CONTENTS' | base64 -d > '$SIGNING_SECRET_KEY_RING_FILE'"
- name: Replace jakarta with javax
run: .github/replaceJakartaWithJavax.sh
- name: Publish release
env:
SIGNING_KEY_ID: ${{ secrets.GPG_SIGNING_KEY_ID }}
SIGNING_PASSWORD: ${{ secrets.GPG_SIGNING_PASSWORD }}
SIGNING_SECRET_KEY_RING_FILE: ${{ secrets.GPG_SIGNING_SECRET_KEY_RING_FILE }}
OSS_USER_TOKEN_KEY: ${{ secrets.OSS_USER_TOKEN_KEY }}
OSS_USER_TOKEN_PASS: ${{ secrets.OSS_USER_TOKEN_PASS }}
run: .github/release.sh javax
tag:
name: Tag release
needs: build
needs: [ build-jakarta, build-javax ]
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand All @@ -98,4 +167,4 @@ jobs:
restore-keys: |
${{ runner.os }}-${{ env.java-version }}-gradle-
- name: Tag release
run: .github/tag-release.sh
run: .github/tag-release.sh
74 changes: 0 additions & 74 deletions .github/workflows/snapshot-suffix.yml

This file was deleted.

76 changes: 71 additions & 5 deletions .github/workflows/snapshot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ jobs:
- uses: actions/checkout@v3
- uses: gradle/wrapper-validation-action@v1

test:
name: Test run
test-jakarta:
name: Test run jakarta
needs: validation
runs-on: ubuntu-latest
steps:
Expand All @@ -40,9 +40,9 @@ jobs:
- name: Gradle Check
run: ./gradlew --info check

build:
name: Publish snapshot
needs: test
build-jakarta:
name: Publish snapshot jakarta
needs: test-jakarta
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand Down Expand Up @@ -72,6 +72,72 @@ jobs:
OSS_USER_TOKEN_PASS: ${{ secrets.OSS_USER_TOKEN_PASS }}
run: ./gradlew clean build publish -x test

test-javax:
name: Test run javax
needs: validation
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 11
- name: Cache Gradle
uses: actions/cache@v3
env:
java-version: 11
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-${{ env.java-version }}-gradle-${{ hashFiles('**/*.gradle*') }}
restore-keys: |
${{ runner.os }}-${{ env.java-version }}-gradle-
- name: Make gradlew executable
run: chmod +x ./gradlew
- name: Replace jakarta with javax
run: .github/replaceJakartaWithJavax.sh
- name: Gradle Check
run: ./gradlew --info check

build-javax:
name: Publish snapshot javax
needs: test-javax
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 11
- name: Cache Gradle
uses: actions/cache@v3
env:
java-version: 11
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-${{ env.java-version }}-gradle-${{ hashFiles('**/*.gradle*') }}
restore-keys: |
${{ runner.os }}-${{ env.java-version }}-gradle-
- name: Make gradlew executable
run: chmod +x ./gradlew
- name: Replace jakarta with javax
run: .github/replaceJakartaWithJavax.sh
- name: Add suffix to modules
run: .github/add-javax-suffix.sh
- name: Gradle Publish Snapshot
if: env.OSS_USER_TOKEN_KEY != null
env:
OSS_USER_TOKEN_KEY: ${{ secrets.OSS_USER_TOKEN_KEY }}
OSS_USER_TOKEN_PASS: ${{ secrets.OSS_USER_TOKEN_PASS }}
run: ./gradlew clean build publish -x test

sonar:
name: Sonar analysis
needs: validation
Expand Down
Loading