Release next version #41
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: Release next version | |
on: workflow_dispatch | |
jobs: | |
setVersion: | |
runs-on: ubuntu-latest | |
outputs: | |
nextVersion: ${{ steps.set.outputs.nextVersion }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Get previous tag | |
id: previoustag | |
uses: 'WyriHaximus/github-action-get-previous-tag@v1' | |
with: | |
fallback: '0.0.0' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Get next version | |
id: semver | |
uses: 'WyriHaximus/github-action-next-semvers@v1' | |
with: | |
version: ${{ steps.previoustag.outputs.tag }} | |
- name: Set Variable | |
id: set | |
run: | | |
echo "nextVersion=\"${{ steps.semver.outputs.patch }}\"" >> $GITHUB_ENV | |
echo "nextVersion=\"${{ steps.semver.outputs.patch }}\"" >> $GITHUB_OUTPUT | |
build: | |
needs: setVersion | |
strategy: | |
matrix: | |
os: [macos-latest, ubuntu-latest, windows-latest] | |
name: Build ${{ github.run_number }} | |
runs-on: ${{ matrix.os }} | |
outputs: | |
nextVersion: ${{ needs.setVersion.outputs.nextVersion }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
cache: maven | |
- name: Change Version | |
run: mvn versions:set -DnewVersion=${{ needs.setVersion.outputs.nextVersion }} | |
- name: Build with Maven | |
run: mvn -B package --file pom.xml | |
- name: Test with Maven | |
run: mvn test | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: target-${{ matrix.os }} | |
path: ./target | |
release: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- name: Remove Quotes from Version | |
run: | | |
version="${{ needs.build.outputs.nextVersion }}" | |
version=$(echo "${version}" | sed 's/"//g') | |
echo "cleanedVersion=${version}" >> $GITHUB_OUTPUT | |
id: remove_quotes | |
- name: Create Release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ steps.remove_quotes.outputs.cleanedVersion }} | |
release_name: Release ${{ steps.remove_quotes.outputs.cleanedVersion }} | |
- name: Download Artifacts (Windows) | |
uses: actions/download-artifact@v2 | |
with: | |
name: target-windows-latest | |
path: ./target-windows | |
- name: Download Artifacts (Linux) | |
uses: actions/download-artifact@v2 | |
with: | |
name: target-ubuntu-latest | |
path: ./target-linux | |
- name: Download Artifacts (MacOS) | |
uses: actions/download-artifact@v2 | |
with: | |
name: target-macos-latest | |
path: ./target-macos | |
- name: Upload Release Asset (Windows) | |
id: upload-release-asset | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GHATKN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./target-windows/waypoint-replace-${{ steps.remove_quotes.outputs.cleanedVersion }}.jar | |
asset_name: waypoint-replace-${{ steps.remove_quotes.outputs.cleanedVersion }}-windows.jar | |
asset_content_type: application/java-archive | |
- name: Upload Release Asset (Linux) | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GHATKN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./target-linux/waypoint-replace-${{ steps.remove_quotes.outputs.cleanedVersion }}.jar | |
asset_name: waypoint-replace-${{ steps.remove_quotes.outputs.cleanedVersion }}-linux.jar | |
asset_content_type: application/java-archive | |
- name: Upload Release Asset (MacOS) | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GHATKN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./target-macos/waypoint-replace-${{ steps.remove_quotes.outputs.cleanedVersion }}.jar | |
asset_name: waypoint-replace-${{ steps.remove_quotes.outputs.cleanedVersion }}-macos.jar | |
asset_content_type: application/java-archive |