| name: Fineract Messaging Smoke Tests |
| |
| on: |
| workflow_call: |
| |
| permissions: |
| contents: read |
| |
| jobs: |
| smoke-test: |
| name: Smoke Test with ${{ matrix.messaging }} |
| runs-on: ubuntu-24.04 |
| timeout-minutes: 60 |
| strategy: |
| fail-fast: false |
| matrix: |
| include: |
| - messaging: ActiveMQ |
| compose_file: docker-compose-postgresql-activemq.yml |
| - messaging: Kafka |
| compose_file: docker-compose-postgresql-kafka.yml |
| |
| env: |
| DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} |
| IMAGE_NAME: fineract |
| |
| steps: |
| - name: Set up JDK 21 |
| uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 |
| with: |
| java-version: '21' |
| distribution: 'zulu' |
| |
| - name: Download workspace |
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 |
| with: |
| name: fineract-workspace-${{ github.run_id }} |
| path: . |
| |
| - name: Extract workspace |
| run: tar -xf fineract-workspace.tar |
| |
| - name: Setup Gradle |
| uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5.0.2 |
| |
| - name: Build the image |
| run: ./gradlew --no-daemon --console=plain :fineract-provider:jibDockerBuild -Djib.to.image=$IMAGE_NAME -x test -x cucumber -x buildJavaSdk |
| |
| - name: Verify git.properties in image |
| run: | |
| docker create --name fineract-inspect $IMAGE_NAME |
| docker export fineract-inspect | tar -tf - | grep 'git.properties' |
| docker rm fineract-inspect |
| |
| - name: Start the ${{ matrix.messaging }} Stack |
| run: docker compose -f ${{ matrix.compose_file }} up --scale fineract-worker=1 -d |
| |
| - name: Check the stack |
| run: docker ps |
| |
| - name: Check health Manager |
| run: curl -f -k --retry 60 --retry-all-errors --connect-timeout 30 --retry-delay 30 https://localhost:8443/fineract-provider/actuator/health |
| |
| - name: Check health Worker1 |
| run: curl -f -k --retry 60 --retry-all-errors --connect-timeout 30 --retry-delay 30 https://localhost:8444/fineract-provider/actuator/health |
| |
| - name: Check info Manager |
| run: | |
| curl -f -k --retry 5 --retry-all-errors --connect-timeout 30 --retry-delay 30 https://localhost:8443/fineract-provider/actuator/info -o actuator-info-manager.json |
| cat actuator-info-manager.json |
| jq -e '.git | type == "object"' actuator-info-manager.json |
| |
| - name: Check info Worker1 |
| run: | |
| curl -f -k --retry 5 --retry-all-errors --connect-timeout 30 --retry-delay 30 https://localhost:8444/fineract-provider/actuator/info -o actuator-info-worker1.json |
| cat actuator-info-worker1.json |
| jq -e '.git | type == "object"' actuator-info-worker1.json |
| |
| - name: Run Smoke Test with Remote COB |
| run: ./gradlew --no-daemon --console=plain :integration-tests:cleanTest :integration-tests:test --tests "org.apache.fineract.integrationtests.investor.externalassetowner.InitiateExternalAssetOwnerTransferTest.saleActiveLoanToExternalAssetOwnerAndBuybackADayLater" -PcargoDisabled -x buildJavaSdk |