Nightly Extended Tests #97
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Nightly Extended Tests | |
| on: | |
| schedule: | |
| - cron: '0 3 * * *' | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| JAVA_OPTS: -Xmx4G -XX:+UseG1GC | |
| SBT_OPTS: -Xmx4G -XX:+UseG1GC | |
| jobs: | |
| nightly-full-suite: | |
| name: Full test suite (all modules) | |
| runs-on: ubuntu-22.04 | |
| timeout-minutes: 45 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| java: ['17', '21'] | |
| scala: ['2.13'] | |
| steps: | |
| - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd | |
| - name: Set up JDK ${{ matrix.java }} | |
| uses: actions/setup-java@ead9eaa3cfe0b0fc2fa749519ae09c3d4f4080b0 | |
| with: | |
| distribution: temurin | |
| java-version: ${{ matrix.java }} | |
| cache: 'sbt' | |
| - name: Coursier cache | |
| uses: coursier/cache-action@02f666a4dac9add5772f3597ab33b6384393a55c | |
| - name: Check formatting | |
| run: | | |
| sbt -batch scalafmtCheckAll | |
| - name: Check scalafix | |
| continue-on-error: true | |
| run: | | |
| sbt -batch "scalafixAll --check" | |
| - name: Run full test suite | |
| run: | | |
| sbt -batch clean coverage test coverageReport coverageAggregate | |
| - name: Run compile-fail tests | |
| run: sbt -batch "compile-fail-tests/test" | |
| - name: Upload coverage to Codecov | |
| if: matrix.java == '17' && matrix.scala == '2.13' | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| fail_ci_if_error: false | |
| nightly-integration-tests: | |
| name: Integration tests | |
| runs-on: ubuntu-22.04 | |
| timeout-minutes: 40 | |
| steps: | |
| - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@ead9eaa3cfe0b0fc2fa749519ae09c3d4f4080b0 | |
| with: | |
| distribution: temurin | |
| java-version: '17' | |
| cache: 'sbt' | |
| - name: Coursier cache | |
| uses: coursier/cache-action@02f666a4dac9add5772f3597ab33b6384393a55c | |
| - name: Run Spark integration tests | |
| run: | | |
| sbt -batch -DwithSparkIT=true "engines-spark/testOnly *SparkDeltaSCD2IT" | |
| - name: Run Flink integration tests | |
| run: | | |
| sbt -batch "engines-flink/testOnly *EngineAbstractionSpec" | |
| nightly-cross-scala: | |
| timeout-minutes: 30 | |
| name: Cross-Scala build (2.13 only) | |
| runs-on: ubuntu-22.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| scala: ['2.13'] | |
| steps: | |
| - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@ead9eaa3cfe0b0fc2fa749519ae09c3d4f4080b0 | |
| with: | |
| distribution: temurin | |
| java-version: '17' | |
| cache: 'sbt' | |
| - name: Coursier cache | |
| uses: coursier/cache-action@02f666a4dac9add5772f3597ab33b6384393a55c | |
| - name: Build with Scala ${{ matrix.scala }} | |
| run: | | |
| # Cross-compile core modules (2.12 and 3.3 unsupported - removed) | |
| sbt -batch ++${{ matrix.scala }}.* core/compile core/test | |
| sbt -batch ++${{ matrix.scala }}.* infrastructure/compile infrastructure/test | |
| nightly-benchmarks: | |
| timeout-minutes: 30 | |
| name: Performance benchmarks | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@ead9eaa3cfe0b0fc2fa749519ae09c3d4f4080b0 | |
| with: | |
| distribution: temurin | |
| java-version: '17' | |
| cache: 'sbt' | |
| - name: Coursier cache | |
| uses: coursier/cache-action@02f666a4dac9add5772f3597ab33b6384393a55c | |
| - name: Run benchmarks | |
| continue-on-error: true | |
| run: | | |
| if [ -d "modules/performance-benchmarks" ]; then | |
| cd modules/performance-benchmarks | |
| sbt -batch "Jmh/run -i 3 -wi 3 -f1 -t1" | |
| else | |
| echo "⚠️ No benchmark module found, skipping" | |
| exit 0 | |
| fi | |
| - name: Upload benchmark results | |
| if: success() | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: benchmark-results | |
| path: modules/performance-benchmarks/target/jmh-results*.json | |
| retention-days: 30 | |
| nightly-template-validation: | |
| name: Validate g8 template | |
| runs-on: ubuntu-22.04 | |
| timeout-minutes: 20 | |
| steps: | |
| - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@ead9eaa3cfe0b0fc2fa749519ae09c3d4f4080b0 | |
| with: | |
| distribution: temurin | |
| java-version: '17' | |
| cache: 'sbt' | |
| - name: Coursier cache | |
| uses: coursier/cache-action@02f666a4dac9add5772f3597ab33b6384393a55c | |
| - name: Test g8 template generation | |
| run: | | |
| cd ${{ runner.temp }} | |
| sbt new file://${{ github.workspace }}/flowforge.g8 --name="nightly-test" --organization="com.flowforge.nightly" | |
| cd nightly-test | |
| # sbt compile test |