| name: Fineract Gradle build - MySQL |
| on: [push, pull_request] |
| |
| permissions: |
| contents: read |
| |
| jobs: |
| build: |
| runs-on: ubuntu-20.04 |
| |
| services: |
| mariad: |
| image: mysql:8.0 |
| ports: |
| - 3306:3306 |
| env: |
| MYSQL_ROOT_PASSWORD: mysql |
| options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3 |
| |
| mock-oauth2-server: |
| image: ghcr.io/navikt/mock-oauth2-server:0.4.0 |
| ports: |
| - 9000:9000 |
| env: |
| SERVER_PORT: 9000 |
| JSON_CONFIG: '{ "interactiveLogin": true, "httpServer": "NettyWrapper", "tokenCallbacks": [ { "issuerId": "auth/realms/fineract", "tokenExpiry": 120, "requestMappings": [{ "requestParam": "scope", "match": "fineract", "claims": { "sub": "mifos", "scope": [ "test" ] } } ] } ] }' |
| |
| env: |
| TZ: Asia/Kolkata |
| steps: |
| - name: Checkout |
| uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3 |
| - name: Set up JDK 17 |
| uses: actions/setup-java@2c7a4878f5d120bd643426d54ae1209b29cc01a3 # tag=v3 |
| with: |
| java-version: '17' |
| distribution: 'zulu' |
| cache: gradle |
| - uses: actions/setup-node@2fddd8803e2f5c9604345a0b591c3020ee971a93 # tag=v3 |
| with: |
| node-version: 16 |
| - name: Congfigure vega-cli |
| run: npm i -g vega-cli --unsafe |
| - name: Validate Gradle wrapper |
| uses: gradle/wrapper-validation-action@859c33240bd026ce8d5f711f5adcc65c2f8eafc1 |
| - name: Verify MariaDB connection |
| run: | |
| while ! mysqladmin ping -h"127.0.0.1" -P3306 ; do |
| sleep 1 |
| done |
| - name: Initialise databases |
| run: | |
| ./gradlew --no-daemon -q createMySQLDB -PdbName=fineract_tenants |
| ./gradlew --no-daemon -q createMySQLDB -PdbName=fineract_default |
| - name: Install additional software |
| run: | |
| sudo apt-get update |
| sudo apt-get install ghostscript graphviz -y |
| |
| - name: Basic Auth Build & Test |
| run: ./gradlew --no-daemon -q --console=plain build test --fail-fast doc -x :twofactor-tests:test -x :oauth2-test:test -PdbType=mysql |
| |
| - name: 2FA Build & Test |
| run: ./gradlew --no-daemon -q --console=plain :twofactor-tests:test --fail-fast -PdbType=mysql |
| |
| - name: OAuth2 Build & Test |
| run: ./gradlew --no-daemon -q --console=plain :oauth2-tests:test --fail-fast -PdbType=mysql |