name: Java Maven Build & Publish Artifact on: push: branches: [ "main" ] pull_request: branches: [ "main" ] jobs: build_test: runs-on: ubuntu-latest steps: - name: Checkout Repository 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: runs-on: ubuntu-latest needs: build_test steps: - name: Checkout Repository uses: actions/checkout@v3 - name: Download artifact uses: actions/download-artifact@v3 with: name: packaged-jar path: staging - name: Create extracted-jar directory run: mkdir extracted-jar - name: Move Artifact run: mv staging/*.jar extracted-jar/ - name: Create Release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.sha }} release_name: Release ${{ github.sha | slice(0, 7) }} # Hier verwenden wir die ersten 7 Zeichen des SHA als Release-Name draft: false prerelease: false - name: Upload Artifact as 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: extracted-jar/*.jar asset_name: your-artifact-name.jar asset_content_type: application/java-archive