blob: dfc665853703c72f37465354a1890fdab0a90e7b [file]
name: Continuous Integration
on:
push:
paths-ignore: [ '**/*.html', '**/*.md', '**/*.txt', '**/*.xml', '**/*.yaml', '**/*.yml', '**/LICENSE', '**/NOTICE' ]
branches: [ 'main', '[0-9]+.[0-9]+.[Xx]' ]
pull_request:
paths-ignore: [ '**/*.html', '**/*.md', '**/*.txt', '**/*.xml', '**/*.yaml', '**/*.yml', '**/LICENSE', '**/NOTICE' ]
# The branches below must be a subset of the branches above
branches: [ 'main', '[0-9]+.[0-9]+.[Xx]' ]
workflow_dispatch:
#env:
# MAVEN_OPTS: -Xmx4g -Xms1g
jobs:
build:
name: JDK ${{ matrix.jdk }} - Scala ${{ matrix.scala }} - Spark ${{ matrix.spark }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
jdk: [ 8, 11, 17 ]
scala: [ 2.12.20, 2.13.16 ]
spark: [ 3.4.4, 3.5.4 ]
env:
JDK_VERSION: ${{ matrix.jdk }}
SCALA_VERSION: ${{ matrix.scala }}
SPARK_VERSION: ${{ matrix.spark }}
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Cache local Maven repository
uses: actions/cache@v4
with:
path: |
~/.m2/repository
~/.sbt
~/.ivy2
key: ${{ runner.os }}-build-${{ runner.os }}-jdk-${{ matrix.jdk }}-scala-${{ matrix.scala }}-spark-${{ matrix.spark }}-sbt-${{ hashFiles('**/build.sbt') }}
restore-keys: ${{ runner.os }}-build-${{ runner.os }}-jdk-${{matrix.jdk}}-scala-${{ matrix.scala }}-spark-${{ matrix.spark }}-sbt-
- name: Setup JDK
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.jdk }}
distribution: 'temurin'
java-package: jdk
architecture: x64
- name: Setup SBT
uses: sbt/setup-sbt@v1
- name: Echo config versions
run: |
java -version
echo Scala version: $SCALA_VERSION
echo Spark version: $SPARK_VERSION
- name: Build and test interpreted path
run: >
CODEGEN_FACTORYMODE=NO_CODEGEN sbt ++$SCALA_VERSION --batch clean test
- name: Build and test codegen path
run: >
CODEGEN_FACTORYMODE=CODEGEN_ONLY sbt ++$SCALA_VERSION --batch clean test