Build jar-file of latest version containing all dependencies #14
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build jar-file of latest version containing all dependencies | |
on: | |
workflow_dispatch: | |
pull_request: | |
branches: | |
- master | |
paths: # only build new jar file if pom.xml or java sources have changed | |
- pom.xml | |
- src/main/** | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'adopt' # You can choose other distributions like 'zulu' or 'temurin' | |
java-version: '11' | |
- name: Build and package JAR with dependencies | |
run: mvn clean package | |
- name: Move JAR to latest-version folder | |
run: | | |
mkdir -p latest-version | |
mv target/*-jar-with-dependencies.jar latest-version/mongodb-performance-test.jar | |
- name: Commit jar file to repository and add version tag | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) | |
git config --local user.email "[email protected]" | |
git config --local user.name "github-actions[bot]" | |
git add latest-version/mongodb-performance-test.jar | |
# Check if there are staged changes | |
if git diff --staged --quiet; then | |
echo "### Build unchanged" >> $GITHUB_STEP_SUMMARY | |
echo "The [latest-version/mongodb-performance-test.jar](https://github.com/idealo/mongodb-performance-test/tree/master/latest-version/mongodb-performance-test.jar) is unchanged" >> $GITHUB_STEP_SUMMARY | |
else | |
git commit -m "Add latest version ($VERSION) of mongodb-performance-test.jar" | |
git push | |
# Delete the local tag if it exists | |
git tag -d "v$VERSION" || true # Ignore if the tag doesn't exist | |
git tag -a "v$VERSION" -m "Tagging version $VERSION" | |
git push origin :refs/tags/v$VERSION || true # delete remote tag, if exists | |
git push origin "v$VERSION" # create remote tag | |
echo "### Version updated to $VERSION" >> $GITHUB_STEP_SUMMARY | |
echo "The [latest-version/mongodb-performance-test.jar](https://github.com/idealo/mongodb-performance-test/tree/master/latest-version/mongodb-performance-test.jar) is now $VERSION" >> $GITHUB_STEP_SUMMARY | |
fi | |