diff --git a/.github/workflows/benchmark-tests.yml b/.github/workflows/benchmark-tests.yml new file mode 100644 index 0000000000..fc87795534 --- /dev/null +++ b/.github/workflows/benchmark-tests.yml @@ -0,0 +1,66 @@ +name: Benchmark Tests + +on: + workflow_dispatch: + schedule: + - cron: "0 0 * * SUN" # Runs daily at midnight + +jobs: + setup: + runs-on: ubuntu-latest + permissions: + contents: write + packages: write + attestations: write + id-token: write + + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: Ensure SHA pinned actions + uses: zgosalvez/github-actions-ensure-sha-pinned-actions@471d5ace1f08e3c4df1c4c2f7e6341aa75da434a # v5.0.3 + - name: Run pre-commit + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 + with: + python-version: "3.13.0" + cache: "pip" + - uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1 + + - name: Set up JDK 21 + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 + with: + distribution: "temurin" + java-version: 21 + + - name: Cache local Maven repository + uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + + - name: Set up QEMU + uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 + + - name: Build and package with Maven Docker profile + run: ./mvnw clean install -Pdocker -DskipTests --batch-mode --errors --show-version + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Run Benchmark Unit Tests with Coverage + run: ./mvnw verify --batch-mode --errors --fail-never --show-version -Dgroups=benchmark -Dsurefire.includes=**/*Benchmark.java + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Tests Reporter + uses: dorny/test-reporter@a43b3a5f7366b97d083190328d2c652e1a8b6aa2 # v3.0.0 + if: success() || failure() + with: + name: IT Tests Report + path: "**/failsafe-reports/TEST*.xml" + list-tests: "failed" + list-suites: "failed" + reporter: java-junit diff --git a/.github/workflows/mvn-test.yml b/.github/workflows/mvn-test.yml index 43d7120563..9e5716c83b 100644 --- a/.github/workflows/mvn-test.yml +++ b/.github/workflows/mvn-test.yml @@ -167,48 +167,6 @@ jobs: **/jacoco*.xml retention-days: 1 - benchmark-unit-tests: - runs-on: ubuntu-latest - needs: build-and-package - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - - name: Set up JDK 21 - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 - with: - distribution: "temurin" - java-version: 21 - cache: "maven" - - - name: Restore Maven artifacts - uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 - with: - path: ~/.m2/repository - key: maven-repo-${{ github.run_id }}-${{ github.run_attempt }} - - - name: Run Benchmark Unit Tests with Coverage - run: ./mvnw verify -Pcoverage --batch-mode --errors --fail-never --show-version -Dgroups=benchmark -Dsurefire.includes=**/*Benchmark.java - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Unit Tests Reporter - uses: dorny/test-reporter@a43b3a5f7366b97d083190328d2c652e1a8b6aa2 # v3.0.0 - if: success() || failure() - with: - name: Unit Tests Report - path: "**/surefire-reports/TEST*.xml" - list-tests: "failed" - list-suites: "failed" - reporter: java-junit - - - name: Upload Benchmark unit test coverage reports - if: success() || failure() - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 - with: - name: benchmark-unit-coverage-reports - path: | - **/jacoco*.xml - retention-days: 1 integration-tests: runs-on: ubuntu-latest @@ -453,7 +411,7 @@ jobs: coverage-report: runs-on: ubuntu-latest - needs: [ unit-tests, integration-tests, slow-unit-tests, benchmark-unit-tests ] + needs: [ unit-tests, integration-tests, slow-unit-tests ] if: success() || failure() steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -472,12 +430,6 @@ jobs: name: slow-unit-coverage-reports path: slow-unit-coverage - - name: Download benchmark unit test coverage reports - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 - continue-on-error: true - with: - name: benchmark-unit-coverage-reports - path: benchmark-unit-coverage - name: Download integration test coverage reports uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1