Skip to content

Release next version #40

Release next version

Release next version #40

Workflow file for this run

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