diff --git a/.github/actions/setup-spark-builder/action.yaml b/.github/actions/setup-spark-builder/action.yaml new file mode 100644 index 000000000..cbb7eb108 --- /dev/null +++ b/.github/actions/setup-spark-builder/action.yaml @@ -0,0 +1,39 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +name: Setup Spark Builder +description: 'Setup Apache Spark to run SQL tests' +inputs: + spark-version: + description: 'The Apache Spark version to build' + required: true + default: '3.4.2' + comet-version: + description: 'The Comet version to use for Spark' + required: true + default: '0.1.0-SNAPSHOT' +runs: + using: "composite" + steps: + - name: Clone Spark repo + shell: bash + run: | + git clone git@github.com:apache/spark.git --depth 1 --branch v${{inputs.spark-version}} apache-spark + cd apache-spark + git apply dev/diffs/${{inputs.spark-version}}.diff + ../mvnw -nsu -q versions:set-property -Dproperty=comet.version -DnewVersion=${{inputs.comet-version}} -DgenerateBackupPoms=false + diff --git a/.github/workflows/spark_sql_test.yml b/.github/workflows/spark_sql_test.yml new file mode 100644 index 000000000..36fc8aa20 --- /dev/null +++ b/.github/workflows/spark_sql_test.yml @@ -0,0 +1,67 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +name: Spark SQL Tests + +concurrency: + group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }} + cancel-in-progress: true + +on: + push: + paths-ignore: + - "doc/**" + - "**.md" + pull_request: + paths-ignore: + - "doc/**" + - "**.md" + # manual trigger + # https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow + workflow_dispatch: + +env: + RUST_VERSION: nightly + +jobs: + spark-sql-catalyst: + strategy: + matrix: + os: [ubuntu-latest] + java_version: [11] + spark-version: ['3.4'] + fail-fast: false + name: spark-sql-catalyst-${{ matrix.os }}/${{ matrix.java_version }}-spark-${{ matrix.spark-version }} + runs-on: ${{ matrix.os }} + container: + image: amd64/rust + steps: + - uses: actions/checkout@v4 + - name: Setup Rust & Java toolchain + uses: ./.github/actions/setup-builder + with: + rust-version: ${{env.RUST_VERSION}} + jdk-version: ${{ matrix.java_version }} + - name: Setup Spark + uses: ./.github/actions/setup-spark-builder + with: + spark-version: '3.4.2' + comet-version: '0.1.0-SNAPSHOT' + - name: Run Spark SQL catalyst tests + run: | + cd apache-spark + build/sbt -Phive catalyst/test diff --git a/dev/diffs/3.4.2.diff b/dev/diffs/3.4.2.diff new file mode 100644 index 000000000..9877b9e12 --- /dev/null +++ b/dev/diffs/3.4.2.diff @@ -0,0 +1,1167 @@ +diff --git a/pom.xml b/pom.xml +index fab98342498..f2156d790d1 100644 +--- a/pom.xml ++++ b/pom.xml +@@ -148,6 +148,8 @@ + 0.10.0 + 2.5.1 + 2.0.8 ++ 3.4 ++ 0.1.0-SNAPSHOT +