diff --git a/.github/workflows/maven-release.yml b/.github/workflows/maven-release.yml index 6edb304..e663695 100644 --- a/.github/workflows/maven-release.yml +++ b/.github/workflows/maven-release.yml @@ -3,25 +3,19 @@ name: Release next version on: workflow_dispatch jobs: - build: - name: Build ${{ github.run_number }} + setVersion: runs-on: ubuntu-latest - + outputs: + nextVersion: ${{ steps.set.outputs.nextVersion }} steps: - uses: actions/checkout@v3 with: - fetch-depth: 0 # Required due to the way Git works, without it this action won't be able to find any or the correct tags - - name: Set up JDK 17 - uses: actions/setup-java@v3 - with: - java-version: '17' - distribution: 'temurin' - cache: maven + fetch-depth: 0 - name: Get previous tag id: previoustag uses: 'WyriHaximus/github-action-get-previous-tag@v1' with: - fallback: '0.0.0' # Fallback tag when no previous tag is found + fallback: '0.0.0' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Get next version @@ -29,27 +23,103 @@ jobs: 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: mvnw versions:set -DnewVersion=${{ steps.semver.outputs.patch }} + run: mvn versions:set -DnewVersion=${{ needs.setVersion.outputs.nextVersion }} - name: Build with Maven - run: mvnw -B package --file pom.xml + run: mvn -B package --file pom.xml - name: Test with Maven - run: mvnw test + 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.semver.outputs.patch }} - release_name: Release ${{ steps.semver.outputs.patch }} - - name: Upload Release Asset + 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/waypoint-replace-${{ steps.semver.outputs.patch }}.jar - asset_name: waypoint-replace-${{ steps.semver.outputs.patch }}.jar + 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 diff --git a/pom.xml b/pom.xml index 0c3d388..25842ed 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ 17 UTF-8 3.2.0 - 20.0.2 + 21.0.2 @@ -63,11 +63,6 @@ javafx-fxml ${javfx.version} - - org.openjfx - javafx-graphics - 21.0.2 - org.controlsfx controlsfx