Skip to content
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
52 changes: 48 additions & 4 deletions .github/workflows/maven-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,9 @@ jobs:
contents: read

steps:
- name: Checkout code
uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up JDK 11
uses: actions/setup-java@v5
Expand All @@ -26,11 +27,54 @@ jobs:
gpg-private-key: ${{ secrets.OSSRH_GPG_PRIVATE_KEY }}
gpg-passphrase: MAVEN_GPG_PASSPHRASE

- name: Determine Maven Version Components
id: version # to identify the output
run: |
COMMIT_SHA_LONG="${{ github.sha }}"
COMMIT_SHA_SHORT="${COMMIT_SHA_LONG:0:7}"

REVISION_VAR=""
SHA1_VAR=""
CHANGELIST_VAR=""

if [[ "${{ github.ref_type }}" == "tag" ]]; then
TAG_NAME="${{ github.ref_name }}"
TAG_CLEAN=$(echo "$TAG_NAME" | sed 's/^v//')

REVISION_VAR="$TAG_CLEAN"
SHA1_VAR=""
CHANGELIST_VAR=""
echo "🏗️ Version de Release (Tag) détectée : $TAG_CLEAN"
else
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0")
VERSION_BASE=$(echo "$LAST_TAG" | sed 's/^v//')
IFS='.' read -r MAJOR MINOR PATCH <<< "$VERSION_BASE"
NEXT_PATCH=$((PATCH + 1))

REVISION_VAR="$MAJOR.$MINOR.$NEXT_PATCH"
SHA1_VAR="-$COMMIT_SHA_SHORT"
CHANGELIST_VAR="-SNAPSHOT"
echo "🧪 Version Snapshot détectée (basée sur $LAST_TAG) : ${REVISION_VAR}${SHA1_VAR}${CHANGELIST_VAR}"
fi

echo "revision=$REVISION_VAR" >> "$GITHUB_OUTPUT"
echo "sha1=$SHA1_VAR" >> "$GITHUB_OUTPUT"
echo "changelist=$CHANGELIST_VAR" >> "$GITHUB_OUTPUT"
echo "➡️ Variables de sortie définies : revision='$REVISION_VAR', sha1='$SHA1_VAR', changelist='$CHANGELIST_VAR'"

- name: Run tests
run: mvn --batch-mode test
run: |
mvn -B --file pom.xml clean test -P test \
"-Drevision=${{ steps.version.outputs.revision }}" \
"-Dsha1=${{ steps.version.outputs.sha1 }}" \
"-Dchangelist=${{ steps.version.outputs.changelist }}"

- name: Deploy to Maven Central
run: mvn --batch-mode clean deploy -P release -Dchangelist= "-Drevision=${{ github.event.release.tag_name }}" -Dgpg.keyname="${{ secrets.OSSRH_GPG_KEY_ID }}"
run: |
mvn --batch-mode clean deploy -P release -Dchangelist= "-Drevision=${{ steps.version.outputs.version }}" -Dgpg.keyname="${{ secrets.OSSRH_GPG_KEY_ID }}" \
"-Drevision=${{ steps.version.outputs.revision }}" \
"-Dsha1=${{ steps.version.outputs.sha1 }}" \
"-Dchangelist=${{ steps.version.outputs.changelist }}"
env:
GITHUB_TOKEN: ${{ github.token }}
CI_DEPLOY_USERNAME: ${{ secrets.CENTRAL_USERNAME }}
Expand Down
50 changes: 46 additions & 4 deletions .github/workflows/pull-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ jobs:

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up JDK 11
uses: actions/setup-java@v5
Expand All @@ -29,14 +31,54 @@ jobs:
gpg-private-key: ${{ secrets.OSSRH_GPG_PRIVATE_KEY }}
gpg-passphrase: MAVEN_GPG_PASSPHRASE

- name: Determine Maven Version Components
id: version # to identify the output
run: |
COMMIT_SHA_LONG="${{ github.sha }}"
COMMIT_SHA_SHORT="${COMMIT_SHA_LONG:0:7}"

REVISION_VAR=""
SHA1_VAR=""
CHANGELIST_VAR=""

if [[ "${{ github.ref_type }}" == "tag" ]]; then
TAG_NAME="${{ github.ref_name }}"
TAG_CLEAN=$(echo "$TAG_NAME" | sed 's/^v//')

REVISION_VAR="$TAG_CLEAN"
SHA1_VAR=""
CHANGELIST_VAR=""
echo "🏗️ Version de Release (Tag) détectée : $TAG_CLEAN"
else
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0")
VERSION_BASE=$(echo "$LAST_TAG" | sed 's/^v//')
IFS='.' read -r MAJOR MINOR PATCH <<< "$VERSION_BASE"
NEXT_PATCH=$((PATCH + 1))

REVISION_VAR="$MAJOR.$MINOR.$NEXT_PATCH"
SHA1_VAR="-$COMMIT_SHA_SHORT"
CHANGELIST_VAR="-SNAPSHOT"
echo "🧪 Version Snapshot détectée (basée sur $LAST_TAG) : ${REVISION_VAR}${SHA1_VAR}${CHANGELIST_VAR}"
fi

echo "revision=$REVISION_VAR" >> "$GITHUB_OUTPUT"
echo "sha1=$SHA1_VAR" >> "$GITHUB_OUTPUT"
echo "changelist=$CHANGELIST_VAR" >> "$GITHUB_OUTPUT"
echo "➡️ Variables de sortie définies : revision='$REVISION_VAR', sha1='$SHA1_VAR', changelist='$CHANGELIST_VAR'"

- name: Unit test
run: |
PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
echo "jar_version=${PROJECT_VERSION}" >> $GITHUB_OUTPUT
mvn -B --file pom.xml clean test -P test
mvn -B --file pom.xml test -P test \
"-Drevision=${{ steps.version.outputs.revision }}" \
"-Dsha1=${{ steps.version.outputs.sha1 }}" \
"-Dchangelist=${{ steps.version.outputs.changelist }}"

- name: Build with Maven
run: mvn -B --file pom.xml clean deploy -P release "-Dsha1=${{ github.sha }}" "-Dchangelist=-SNAPSHOT" -Dgpg.keyname="${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}" -Dgpg.keyname="${{ secrets.OSSRH_GPG_KEY_ID }}"
run: |
mvn --batch-mode deploy -P release -Dchangelist= "-Drevision=${{ steps.version.outputs.version }}" -Dgpg.keyname="${{ secrets.OSSRH_GPG_KEY_ID }}" \
"-Drevision=${{ steps.version.outputs.revision }}" \
"-Dsha1=${{ steps.version.outputs.sha1 }}" \
"-Dchangelist=${{ steps.version.outputs.changelist }}"
env:
GITHUB_TOKEN: ${{ github.token }}
CI_DEPLOY_USERNAME: ${{ secrets.CENTRAL_USERNAME }}
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
<test.dir>${project.basedir}/src/test</test.dir>
<sonar.organization>geosiris-technologies</sonar.organization>
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
<revision>1.0.18</revision>
<revision/> <!-- empty to avoid gpg errors while uploading. If a default value is set, it seems not tanking the one given in parameter of the mvn command -->
<changelist></changelist>
<sha1/>
<nameSuffix/>
Expand Down