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 17 uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4 with: java-version: '17' distribution: 'zulu' - name: Setup Gradle uses: gradle/actions/setup-gradle@94baf225fe0a508e581a564467443d0e2379123b # v4.3.0 - 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@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4 with: name: test-results path: | build/reports/ fineract-progressive-loan-embeddable-schedule-generator/build/reports/