name: Juick on: pull_request: push: branches: [master] workflow_dispatch: concurrency: group: ${{ github.head_ref || github.ref }} cancel-in-progress: true jobs: current: runs-on: self-hosted timeout-minutes: 25 services: postgres: image: postgres ports: - 5434:5432 env: POSTGRES_DB: juick POSTGRES_USER: juick POSTGRES_PASSWORD: secret options: --health-cmd="pg_isready -U juick" --health-interval=10s --health-retries=3 --health-timeout=5s --health-start-period=15s mysql: image: mariadb:10.11 ports: - 3306:3306 env: MARIADB_DATABASE: juick MARIADB_ROOT_PASSWORD: secret options: --health-cmd="mysqladmin ping" --health-interval=10s --health-retries=3 --health-timeout=5s --health-start-period=15s sqlserver: image: mcr.microsoft.com/mssql/server:2022-CU13-ubuntu-22.04 ports: - 1433:1433 options: --health-cmd="/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P \"$MSSQL_SA_PASSWORD\" -Q \"SELECT 1\"" --health-interval=10s --health-retries=3 --health-timeout=5s --health-start-period=15s env: ACCEPT_EULA: Y MSSQL_SA_PASSWORD: Passw00rd! MSSQL_PID: Express MSSQL_COLLATION: Cyrillic_General_100_CI_AS_WS_SC_UTF8 steps: - uses: actions/checkout@v4 - name: Set up JDK 17 uses: actions/setup-java@v4 with: distribution: "temurin" java-version: 17 - name: Setup Node.JS 18 uses: actions/setup-node@v4 with: node-version: "18" - run: npm ci - name: Run tests (H2) run: ./mvnw -Pdefault clean package - name: Run tests (SQLite) if: false run: ./mvnw -Psqlite clean package - name: Run tests (PostgreSQL) run: ./mvnw -Ppostgres clean package - name: Run tests (MySQL) run: ./mvnw -Pmysql clean package - name: Run tests (SQL Server) run: ./mvnw -Psqlserver clean package - uses: mikepenz/action-junit-report@v4 with: report_paths: "**/target/surefire-reports/TEST-*.xml" github_token: ${{ secrets.GITHUB_TOKEN }} vnext: runs-on: self-hosted timeout-minutes: 15 steps: - uses: actions/checkout@v4 - name: Setup Node.JS 18 uses: actions/setup-node@v4 with: node-version: "18" - run: npm ci - run: npm run vnext:test - run: npm run vnext:lint - run: npm run vnext:build - run: npm run vnext:build:ssr