diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 765a5fe..80ee6d5 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -1,4 +1,4 @@ -name: Java CI with Maven and Release +name: Java Maven Build & Publish Artifact on: push: @@ -7,62 +7,51 @@ on: branches: [ "main" ] jobs: - build: + build_test: 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 - # Create target directory if not exists - mkdir -p target + 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: + - uses: actions/checkout@v3 + - uses: actions/download-artifact@v3 + with: + name: packaged-jar + path: staging create_release: - needs: build + needs: publish-job runs-on: ubuntu-latest permissions: - contents: write + contents: write steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Generate tag - id: tag - run: echo "::set-output name=tag::$(date +'%Y%m%d%H%M%S')" - + - name: Extract Artifact + run: | + unzip -o staging/packaged-jar/*.jar -d extracted-jar - name: Create Release - id: 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 }} + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} draft: false prerelease: false - - - name: Find Jar files - id: find_jars - run: | - jars=$(find target -name '*.jar') - echo "::set-output name=jars::$jars" - - - 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: ${{ steps.find_jars.outputs.jars }} - asset_name: my-java-app.jar - asset_content_type: application/java-archive + files: | + extracted-jar/*