diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 5981cb1..95dbb71 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -1,4 +1,4 @@ -name: Java Maven Build & Publish Artifact +name: Java CI with Maven and Release on: push: @@ -7,53 +7,48 @@ on: branches: [ "main" ] jobs: - build_test: + build: runs-on: ubuntu-latest + steps: - uses: actions/checkout@v3 + - name: Set up JDK 17 uses: actions/setup-java@v3 with: java-version: '17' distribution: 'temurin' cache: maven + - name: Build with Maven run: mvn -B package --file pom.xml - - name: Upload artifact - uses: actions/upload-artifact@v3 - with: - name: packaged-jar - path: target/*.jar - publish-job: + create_release: + needs: build runs-on: ubuntu-latest - needs: build_test + permissions: + contents: write # This line gives the token permission to create releases steps: - - uses: actions/checkout@v3 - - uses: actions/download-artifact@v3 - with: - name: packaged-jar - path: staging - - name: Create Release - id: create_release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: v1.0.0 - release_name: Release 1.0.0 - body: | - Release von Version 1.0.0 - Das Artefakt kann unter folgender URL heruntergeladen werden: ${{ steps.download-artifact.outputs.download-url }} - draft: false - prerelease: false - - name: Upload Jar as Release Asset - id: upload-release-asset - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: target/*.jar - asset_name: my-java-app.jar - asset_content_type: application/java-archive + - uses: actions/checkout@v3 + - name: Generate tag + id: tag + run: echo "::set-output name=tag::$(date +'%Y%m%d%H%M%S')" + - name: Create Release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ steps.tag.outputs.tag }} + release_name: Release ${{ steps.tag.outputs.tag }} + draft: false + prerelease: false + - name: Upload Jar as Release Asset + id: upload-release-asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: target/*.jar + asset_name: my-java-app.jar + asset_content_type: application/java-archive