Skip to content

Maven Release

Maven Release #11

Workflow file for this run

name: Maven Release
on:
workflow_dispatch: {}
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
token: ${{ secrets.GIT_BOT_TOKEN }}
fetch-depth: 0
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
- name: Validate Maven
run: mvn -version
- name: Read current version
id: read_version
run: |
current_version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
echo "current_version=$current_version"
echo "current_version=$current_version" >> $GITHUB_OUTPUT
- name: Compute next version
id: compute_next
run: |
current_version="${{ steps.read_version.outputs.current_version }}"
# extract only the number from wso2vNN
current_patch=$(echo "$current_version" | grep -o 'wso2v[0-9]\+' | sed 's/wso2v//')
# increment the patch number
next_patch=$((current_patch + 1))
# remove -SNAPSHOT if present
release_version="${current_version/-SNAPSHOT/}"
# build next snapshot version
next_version="${release_version/wso2v$current_patch/wso2v$next_patch}-SNAPSHOT"
# print for debugging
echo "release_version=$release_version"
echo "next_version=$next_version"
# set outputs for next steps
echo "release_version=$release_version" >> "$GITHUB_OUTPUT"
echo "next_version=$next_version" >> "$GITHUB_OUTPUT"
- name: Configure Maven settings file
run: |
mkdir -p ~/.m2
echo "<settings>
<servers>
<server>
<id>nexus-releases</id>
<username>${{ secrets.NEXUS_USERNAME }}</username>
<password>${{ secrets.NEXUS_PASSWORD }}</password>
</server>
</servers>
</settings>" > ~/.m2/settings.xml
- name: Configure git credentials
run: |
git config --global user.name ${{ secrets.WSO2_INTEGRATION_BOT_USERNAME }}
git config --global user.email ${{ secrets.WSO2_INTEGRATION_BOT_EMAIL }}
- name: Build artifacts
run: |
mvn clean install -DskipTests
- name: Deploy artifacts with Maven
env:
GITHUB_TOKEN: ${{ secrets.GIT_BOT_TOKEN }}
run: |
mvn --batch-mode release:prepare release:perform \
-DreleaseVersion=${{ steps.compute_next.outputs.release_version }} \
-DdevelopmentVersion=${{ steps.compute_next.outputs.next_version }} \
-Dtag=${{ steps.compute_next.outputs.release_version }} \
-Darguments="-DskipTests"
- name: zip the LS files
run: |
zip -j mi-language-server-${{steps.compute_next.outputs.release_version}}.zip org.eclipse.lemminx/target/*.jar \
-x '*tests.jar' '*-sources.jar' '*-javadoc.jar'
- name: Create Github Release with Assets
env:
GITHUB_TOKEN: ${{ secrets.GIT_BOT_TOKEN }}
run: |
gh release create "${{ steps.compute_next.outputs.release_version }}" \
--repo="$GITHUB_REPOSITORY" \
--title="${{ steps.compute_next.outputs.release_version }}" \
--generate-notes \
mi-language-server-${{ steps.compute_next.outputs.release_version }}.zip