9898 \"java-other-versions\": \"true\",
9999 \"lint\" : \"true\",
100100 \"k8s-integration-tests\" : \"true\",
101- \"breaking-changes-buf\" : \"true\",
101+ \"buf\" : \"true\",
102+ \"ui\" : \"true\",
102103 }"
103104 echo $precondition # For debugging
104105 # Remove `\n` to avoid "Invalid format" error
@@ -149,7 +150,7 @@ jobs:
149150 - >-
150151 mllib-local, mllib, graphx
151152 - >-
152- streaming, sql-kafka-0-10, streaming-kafka-0-10,
153+ streaming, sql-kafka-0-10, streaming-kafka-0-10, streaming-kinesis-asl,
153154 yarn, kubernetes, hadoop-cloud, spark-ganglia-lgpl,
154155 connect, protobuf
155156 # Here, we split Hive and SQL tests into some of slow ones and the rest of them.
@@ -240,12 +241,12 @@ jobs:
240241 ./dev/free_disk_space
241242 fi
242243 - name : Install Java ${{ matrix.java }}
243- uses : actions/setup-java@v3
244+ uses : actions/setup-java@v4
244245 with :
245246 distribution : zulu
246247 java-version : ${{ matrix.java }}
247248 - name : Install Python 3.9
248- uses : actions/setup-python@v4
249+ uses : actions/setup-python@v5
249250 # We should install one Python that is higher than 3+ for SQL and Yarn because:
250251 # - SQL component also has Python related tests, for example, IntegratedUDFTestUtils.
251252 # - Yarn has a Python specific test too, for example, YarnClusterSuite.
@@ -267,6 +268,10 @@ jobs:
267268 export TERM=vt100
268269 # Hive "other tests" test needs larger metaspace size based on experiment.
269270 if [[ "$MODULES_TO_TEST" == "hive" ]] && [[ "$EXCLUDED_TAGS" == "org.apache.spark.tags.SlowHiveTest" ]]; then export METASPACE_SIZE=2g; fi
271+ // SPARK-46283: should delete the following env replacement after SPARK 3.x EOL
272+ if [[ "$MODULES_TO_TEST" == *"streaming-kinesis-asl"* ]] && [[ "${{ inputs.branch }}" =~ ^branch-3 ]]; then
273+ MODULES_TO_TEST=${MODULES_TO_TEST//streaming-kinesis-asl, /}
274+ fi
270275 export SERIAL_SBT_TESTS=1
271276 ./dev/run-tests --parallelism 1 --modules "$MODULES_TO_TEST" --included-tags "$INCLUDED_TAGS" --excluded-tags "$EXCLUDED_TAGS"
272277 - name : Upload test results to report
@@ -427,7 +432,7 @@ jobs:
427432 ./dev/free_disk_space_container
428433 fi
429434 - name : Install Java ${{ matrix.java }}
430- uses : actions/setup-java@v3
435+ uses : actions/setup-java@v4
431436 with :
432437 distribution : zulu
433438 java-version : ${{ matrix.java }}
@@ -537,7 +542,7 @@ jobs:
537542 ./dev/free_disk_space_container
538543 fi
539544 - name : Install Java ${{ inputs.java }}
540- uses : actions/setup-java@v3
545+ uses : actions/setup-java@v4
541546 with :
542547 distribution : zulu
543548 java-version : ${{ inputs.java }}
@@ -556,11 +561,10 @@ jobs:
556561 name : test-results-sparkr--${{ inputs.java }}-${{ inputs.hadoop }}-hive2.3
557562 path : " **/target/test-reports/*.xml"
558563
559- breaking-changes- buf :
564+ buf :
560565 needs : [precondition]
561- if : (!cancelled()) && fromJson(needs.precondition.outputs.required).breaking-changes-buf == 'true'
562- # Change 'branch-3.5' to 'branch-4.0' in master branch after cutting branch-4.0 branch.
563- name : Breaking change detection with Buf (branch-3.5)
566+ if : (!cancelled()) && fromJson(needs.precondition.outputs.required).buf == 'true'
567+ name : Protobuf breaking change detection and Python CodeGen check
564568 runs-on : ubuntu-22.04
565569 steps :
566570 - name : Checkout Spark repository
@@ -579,12 +583,26 @@ jobs:
579583 uses : bufbuild/buf-setup-action@v1
580584 with :
581585 github_token : ${{ secrets.GITHUB_TOKEN }}
582- - name : Detect breaking changes
586+ - name : Protocol Buffers Linter
587+ uses : bufbuild/buf-lint-action@v1
588+ with :
589+ input : core/src/main/protobuf
590+ # Change 'branch-3.5' to 'branch-4.0' in master branch after cutting branch-4.0 branch.
591+ - name : Breaking change detection against branch-3.5
583592 uses : bufbuild/buf-breaking-action@v1
584593 with :
585594 input : connector/connect/common/src/main
586595 against : ' https://github.com/apache/spark.git#branch=branch-3.5,subdir=connector/connect/common/src/main'
587-
596+ - name : Install Python 3.9
597+ uses : actions/setup-python@v5
598+ with :
599+ python-version : ' 3.9'
600+ - name : Install dependencies for Python CodeGen check
601+ run : |
602+ python3.9 -m pip install 'black==23.9.1' 'protobuf==4.25.1' 'mypy==0.982' 'mypy-protobuf==3.3.0'
603+ python3.9 -m pip list
604+ - name : Python CodeGen check
605+ run : ./dev/connect-check-protos.py
588606
589607 # Static analysis, and documentation build
590608 lint :
@@ -651,7 +669,7 @@ jobs:
651669 ./dev/free_disk_space_container
652670 fi
653671 - name : Install Java ${{ inputs.java }}
654- uses : actions/setup-java@v3
672+ uses : actions/setup-java@v4
655673 with :
656674 distribution : zulu
657675 java-version : ${{ inputs.java }}
@@ -696,17 +714,19 @@ jobs:
696714 python3.9 -m pip install 'pandas-stubs==1.2.0.53' ipython 'grpcio==1.59.3' 'grpc-stubs==1.24.11' 'googleapis-common-protos-stubs==2.2.0'
697715 - name : Python linter
698716 run : PYTHON_EXECUTABLE=python3.9 ./dev/lint-python
699- - name : Install dependencies for Python code generation check
700- if : inputs.branch != 'branch-3.3' && inputs.branch != 'branch-3.4'
717+ # Should delete this section after SPARK 3.5 EOL.
718+ - name : Install dependencies for Python code generation check for branch-3.5
719+ if : inputs.branch == 'branch-3.5'
701720 run : |
702721 # See more in "Installation" https://docs.buf.build/installation#tarball
703722 curl -LO https://github.com/bufbuild/buf/releases/download/v1.28.1/buf-Linux-x86_64.tar.gz
704723 mkdir -p $HOME/buf
705724 tar -xvzf buf-Linux-x86_64.tar.gz -C $HOME/buf --strip-components 1
706725 rm buf-Linux-x86_64.tar.gz
707726 python3.9 -m pip install 'protobuf==4.25.1' 'mypy-protobuf==3.3.0'
708- - name : Python code generation check
709- if : inputs.branch != 'branch-3.3' && inputs.branch != 'branch-3.4'
727+ # Should delete this section after SPARK 3.5 EOL.
728+ - name : Python code generation check for branch-3.5
729+ if : inputs.branch == 'branch-3.5'
710730 run : if test -f ./dev/connect-check-protos.py; then PATH=$PATH:$HOME/buf/bin PYTHON_EXECUTABLE=python3.9 ./dev/connect-check-protos.py; fi
711731 # Should delete this section after SPARK 3.5 EOL.
712732 - name : Install JavaScript linter dependencies for branch-3.3, branch-3.4, branch-3.5
@@ -741,9 +761,7 @@ jobs:
741761 Rscript -e "devtools::install_version('preferably', version='0.4', repos='https://cloud.r-project.org')"
742762 - name : Install dependencies for documentation generation
743763 run : |
744- # Pin the MarkupSafe to 2.0.1 to resolve the CI error.
745- # See also https://issues.apache.org/jira/browse/SPARK-38279.
746- python3.9 -m pip install 'sphinx==4.2.0' mkdocs 'pydata_sphinx_theme>=0.13' sphinx-copybutton nbsphinx numpydoc jinja2 'markupsafe==2.0.1' 'pyzmq<24.0.0'
764+ python3.9 -m pip install 'sphinx==4.2.0' mkdocs 'pydata_sphinx_theme>=0.13' sphinx-copybutton nbsphinx numpydoc jinja2 markupsafe 'pyzmq<24.0.0'
747765 python3.9 -m pip install ipython_genutils # See SPARK-38517
748766 python3.9 -m pip install sphinx_plotly_directive 'numpy>=1.20.0' pyarrow pandas 'plotly>=4.8'
749767 python3.9 -m pip install 'docutils<0.18.0' # See SPARK-39421
@@ -817,7 +835,7 @@ jobs:
817835 restore-keys : |
818836 java${{ matrix.java }}-maven-
819837 - name : Install Java ${{ matrix.java }}
820- uses : actions/setup-java@v3
838+ uses : actions/setup-java@v4
821839 with :
822840 distribution : zulu
823841 java-version : ${{ matrix.java }}
@@ -872,7 +890,7 @@ jobs:
872890 restore-keys : |
873891 tpcds-coursier-
874892 - name : Install Java ${{ inputs.java }}
875- uses : actions/setup-java@v3
893+ uses : actions/setup-java@v4
876894 with :
877895 distribution : zulu
878896 java-version : ${{ inputs.java }}
@@ -979,7 +997,7 @@ jobs:
979997 restore-keys : |
980998 docker-integration-coursier-
981999 - name : Install Java ${{ inputs.java }}
982- uses : actions/setup-java@v3
1000+ uses : actions/setup-java@v4
9831001 with :
9841002 distribution : zulu
9851003 java-version : ${{ inputs.java }}
@@ -1039,7 +1057,7 @@ jobs:
10391057 restore-keys : |
10401058 k8s-integration-coursier-
10411059 - name : Install Java ${{ inputs.java }}
1042- uses : actions/setup-java@v3
1060+ uses : actions/setup-java@v4
10431061 with :
10441062 distribution : zulu
10451063 java-version : ${{ inputs.java }}
@@ -1074,3 +1092,22 @@ jobs:
10741092 with :
10751093 name : spark-on-kubernetes-it-log
10761094 path : " **/target/integration-tests.log"
1095+
1096+ ui :
1097+ needs : [precondition]
1098+ if : fromJson(needs.precondition.outputs.required).ui == 'true'
1099+ name : Run Spark UI tests
1100+ runs-on : ubuntu-22.04
1101+ timeout-minutes : 300
1102+ steps :
1103+ - uses : actions/checkout@v4
1104+ - name : Use Node.js
1105+ uses : actions/setup-node@v4
1106+ with :
1107+ node-version : 20
1108+ cache : ' npm'
1109+ cache-dependency-path : ui-test/package-lock.json
1110+ - run : |
1111+ cd ui-test
1112+ npm install --save-dev
1113+ node --experimental-vm-modules node_modules/.bin/jest
0 commit comments