From b112d7099345db185c203b389934d73d90c3d489 Mon Sep 17 00:00:00 2001 From: Maruf Bepary Date: Mon, 20 Oct 2025 16:04:16 +0100 Subject: [PATCH] Improved pipeline --- .github/workflows/merge.yml | 71 +++++++++++++++++++++++++++++++------ 1 file changed, 60 insertions(+), 11 deletions(-) diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml index dc0f3f8..7678d19 100644 --- a/.github/workflows/merge.yml +++ b/.github/workflows/merge.yml @@ -9,15 +9,13 @@ on: - main jobs: - build-and-test: - name: Build and Test (Java ${{ matrix.java-version }}) + build: + name: Build (Java ${{ matrix.java-version }}) runs-on: ubuntu-latest - strategy: matrix: java-version: [17, 21, 25] fail-fast: false - steps: - name: Checkout code uses: actions/checkout@v4 @@ -35,22 +33,73 @@ jobs: - name: Build (excluding tests) run: ./gradlew build -x test + - name: Upload build reports + if: failure() + uses: actions/upload-artifact@v4 + with: + name: build-reports-java-${{ matrix.java-version }} + path: build/reports/ + + test: + name: Test (Java ${{ matrix.java-version }}) + runs-on: ubuntu-latest + needs: build + strategy: + matrix: + java-version: [17, 21, 25] + fail-fast: false + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up JDK ${{ matrix.java-version }} + uses: actions/setup-java@v4 + with: + java-version: ${{ matrix.java-version }} + distribution: 'temurin' + cache: 'gradle' + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + - name: Run tests run: ./gradlew test - - name: Generate Javadoc - run: ./gradlew javadoc - - name: Upload test results if: always() uses: actions/upload-artifact@v4 with: name: test-results-java-${{ matrix.java-version }} path: build/reports/tests/test/ + + javadoc: + name: Javadoc (Java ${{ matrix.java-version }}) + runs-on: ubuntu-latest + needs: test + strategy: + matrix: + java-version: [17, 21, 25] + fail-fast: false + steps: + - name: Checkout code + uses: actions/checkout@v4 - - name: Upload build reports - if: failure() + - name: Set up JDK ${{ matrix.java-version }} + uses: actions/setup-java@v4 + with: + java-version: ${{ matrix.java-version }} + distribution: 'temurin' + cache: 'gradle' + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Generate Javadoc + run: ./gradlew javadoc + + - name: Upload Javadoc + if: always() uses: actions/upload-artifact@v4 with: - name: build-reports-java-${{ matrix.java-version }} - path: build/reports/ \ No newline at end of file + name: javadoc-java-${{ matrix.java-version }} + path: build/docs/javadoc/ \ No newline at end of file