Skip to content

Backend Tests on main by @CPUat #1

Backend Tests on main by @CPUat

Backend Tests on main by @CPUat #1

Workflow file for this run

name: "Backend Tests"
run-name: "Backend Tests on ${{ github.ref_name }} by @${{ github.actor }}"
on:
pull_request:
paths:
- "apps/opik-backend/**"
- ".github/workflows/backend_tests.yml"
- ".github/scripts/discover-backend-tests.sh"
push:
branches:
- 'main'
paths:
- "apps/opik-backend/**"
- ".github/workflows/backend_tests.yml"
- ".github/scripts/discover-backend-tests.sh"
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
permissions:
contents: read
checks: write
pull-requests: write
jobs:
# Automatically classify tests as unit/integration and split integration
# tests into balanced groups. No manual maintenance when adding new tests.
discover-tests:
runs-on: ubuntu-latest
timeout-minutes: 2
outputs:
matrix: ${{ steps.split.outputs.matrix }}
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 1
sparse-checkout: |
apps/opik-backend/src/test/java
.github/scripts
- name: Classify and split tests
id: split
working-directory: apps/opik-backend
run: ../../.github/scripts/discover-backend-tests.sh
run-backend-tests:
needs: discover-tests
name: ${{ matrix.name }}
runs-on: ubuntu-latest
timeout-minutes: ${{ matrix.timeout }}
defaults:
run:
working-directory: apps/opik-backend/
strategy:
fail-fast: false
matrix: ${{ fromJSON(needs.discover-tests.outputs.matrix) }}
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 1
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'corretto'
cache: maven
- name: Run ${{ matrix.name }}
env:
TESTCONTAINERS_REUSE_ENABLE: true
run: >-
mvn clean test
-Dtest="${{ matrix.tests }}"
-Dmaven.test.failure.ignore=true
-Dsurefire.rerunFailingTestsCount=3
- name: Publish Test Report
uses: EnricoMi/publish-unit-test-result-action/linux@v2
if: always()
with:
action_fail: true
comment_mode: failures
check_name: "Backend Tests - ${{ matrix.name }}"
files: '**/target/surefire-reports/TEST-*.xml'