name: Fineract Build Progressive Loan Embeddable Jar & Test with a Sample Application on: [push, pull_request] permissions: contents: read jobs: build: runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 with: fetch-depth: 0 - name: Set up JDK 21 uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4 with: java-version: '21' distribution: 'zulu' - name: Setup Gradle uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1 - name: Build Embeddable Jar run: ./gradlew --no-daemon --console=plain :fineract-progressive-loan-embeddable-schedule-generator:shadowJar - name: Pick up the JAR filename run: | EMBEDDABLE_JAR_FILE=(`ls fineract-progressive-loan-embeddable-schedule-generator/build/libs/*-all.jar | head -n 1`) echo "EMBEDDABLE_JAR_FILE=$EMBEDDABLE_JAR_FILE" >> $GITHUB_ENV - name: Run unit tests run: ./gradlew --no-daemon --console=plain :fineract-progressive-loan-embeddable-schedule-generator:test - name: Build Sample Application run: | mkdir sample-app javac -cp $EMBEDDABLE_JAR_FILE -d sample-app fineract-progressive-loan-embeddable-schedule-generator/misc/Main.java env: EMBEDDABLE_JAR_FILE: ${{ env.EMBEDDABLE_JAR_FILE }} - name: Run Schedule Generator Sample Application run: | java -cp $EMBEDDABLE_JAR_FILE:sample-app Main java -cp $EMBEDDABLE_JAR_FILE:sample-app Main 25 env: EMBEDDABLE_JAR_FILE: ${{ env.EMBEDDABLE_JAR_FILE }} - name: Archive test results if: always() uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 with: name: test-results path: | build/reports/ fineract-progressive-loan-embeddable-schedule-generator/build/reports/