Skip to content

Nightly Extended Tests #97

Nightly Extended Tests

Nightly Extended Tests #97

Workflow file for this run

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