#
# 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: "Build / Java25 (master, Scala 2.13, Hadoop 3, JDK 25)"

on:
  schedule:
    - cron: '0 4 * * *'
  workflow_dispatch:

jobs:
  run-build:
    permissions:
      packages: write
    name: Run
    uses: ./.github/workflows/build_and_test.yml
    if: github.repository == 'apache/spark'
    with:
      java: 25
      branch: master
      hadoop: hadoop3
      envs: >-
        {
          "PYSPARK_IMAGE_TO_TEST": "python-311",
          "PYTHON_TO_TEST": "python3.11",
          "SKIP_MIMA": "true",
          "SKIP_UNIDOC": "true",
          "DEDICATED_JVM_SBT_TESTS": "org.apache.spark.sql.execution.datasources.parquet.ParquetFileFormatV1Suite,org.apache.spark.sql.execution.datasources.parquet.ParquetFileFormatV2Suite,org.apache.spark.sql.execution.datasources.orc.OrcSourceV1Suite,org.apache.spark.sql.execution.datasources.orc.OrcSourceV2Suite"
        }
      jobs: >-
        {
          "build": "true",
          "pyspark": "true",
          "sparkr": "true",
          "tpcds-1g": "true",
          "docker-integration-tests": "true",
          "yarn": "true",
          "k8s-integration-tests": "true",
          "buf": "true",
          "ui": "true"
        }
