-
Notifications
You must be signed in to change notification settings - Fork 28.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[SPARK-32357][INFRA] Publish failed and succeeded test reports in GitHub Actions #29333
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
name: master | ||
name: Build and test | ||
|
||
on: | ||
push: | ||
|
@@ -9,7 +9,6 @@ on: | |
- master | ||
|
||
jobs: | ||
# TODO(SPARK-32248): Recover JDK 11 builds | ||
# Build: build Spark and run the tests for specified modules. | ||
build: | ||
name: "Build modules: ${{ matrix.modules }} ${{ matrix.comment }} (JDK ${{ matrix.java }}, ${{ matrix.hadoop }}, ${{ matrix.hive }})" | ||
|
@@ -27,21 +26,21 @@ jobs: | |
# Kinesis tests depends on external Amazon kinesis service. | ||
# Note that the modules below are from sparktestsupport/modules.py. | ||
modules: | ||
- |- | ||
- >- | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. By doing this, it treats newlines as spaces, which It makes the title prettier. Without this, actions/upload-artifact fails for unknown reason. |
||
core, unsafe, kvstore, avro, | ||
network-common, network-shuffle, repl, launcher, | ||
examples, sketch, graphx | ||
- |- | ||
- >- | ||
catalyst, hive-thriftserver | ||
- |- | ||
- >- | ||
streaming, sql-kafka-0-10, streaming-kafka-0-10, | ||
mllib-local, mllib, | ||
yarn, mesos, kubernetes, hadoop-cloud, spark-ganglia-lgpl | ||
- |- | ||
- >- | ||
pyspark-sql, pyspark-mllib, pyspark-resource | ||
- |- | ||
- >- | ||
pyspark-core, pyspark-streaming, pyspark-ml | ||
- |- | ||
- >- | ||
sparkr | ||
# Here, we split Hive and SQL tests into some of slow ones and the rest of them. | ||
included-tags: [""] | ||
|
@@ -144,14 +143,15 @@ jobs: | |
# PyArrow is not supported in PyPy yet, see ARROW-2651. | ||
# TODO(SPARK-32247): scipy installation with PyPy fails for an unknown reason. | ||
run: | | ||
python3.6 -m pip install numpy pyarrow pandas scipy | ||
python3.6 -m pip install numpy pyarrow pandas scipy xmlrunner | ||
python3.6 -m pip list | ||
# PyPy does not have xmlrunner | ||
pypy3 -m pip install numpy pandas | ||
pypy3 -m pip list | ||
- name: Install Python packages (Python 3.8) | ||
if: contains(matrix.modules, 'pyspark') || (contains(matrix.modules, 'sql') && !contains(matrix.modules, 'sql-')) | ||
run: | | ||
python3.8 -m pip install numpy pyarrow pandas scipy | ||
python3.8 -m pip install numpy pyarrow pandas scipy xmlrunner | ||
python3.8 -m pip list | ||
# SparkR | ||
- name: Install R 4.0 | ||
|
@@ -170,13 +170,19 @@ jobs: | |
# Show installed packages in R. | ||
sudo Rscript -e 'pkg_list <- as.data.frame(installed.packages()[, c(1,3:4)]); pkg_list[is.na(pkg_list$Priority), 1:2, drop = FALSE]' | ||
# Run the tests. | ||
- name: "Run tests: ${{ matrix.modules }}" | ||
- name: Run tests | ||
run: | | ||
# Hive tests become flaky when running in parallel as it's too intensive. | ||
if [[ "$MODULES_TO_TEST" == "hive" ]]; then export SERIAL_SBT_TESTS=1; fi | ||
mkdir -p ~/.m2 | ||
./dev/run-tests --parallelism 2 --modules "$MODULES_TO_TEST" --included-tags "$INCLUDED_TAGS" --excluded-tags "$EXCLUDED_TAGS" | ||
rm -rf ~/.m2/repository/org/apache/spark | ||
- name: Upload test results to report | ||
if: always() | ||
uses: actions/upload-artifact@v2 | ||
Comment on lines
+180
to
+182
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If previous There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yeah, if the tests don't fail, it should upload JUnit XML files and then report the successful test cases. e.g.) 1000 tests passed 6 skipped 0 failures. GitHub Actions has things like |
||
with: | ||
name: test-results-${{ matrix.modules }}-${{ matrix.comment }}-${{ matrix.java }}-${{ matrix.hadoop }}-${{ matrix.hive }} | ||
path: "**/target/test-reports/*.xml" | ||
|
||
# Static analysis, and documentation build | ||
lint: | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
name: Report test results | ||
on: | ||
workflow_run: | ||
workflows: ["Build and test"] | ||
types: | ||
- completed | ||
|
||
jobs: | ||
test_report: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Download test results to report | ||
# TODO(SPARK-32605): It was forked to have a custom fix | ||
# https://github.com/HyukjinKwon/action-surefire-report/commit/c96094cc35061fcf154a7cb46807f2f3e2339476 | ||
# in order to add the support of custom target commit SHA. It should be contributed back to the original | ||
# plugin and avoid using the fork. | ||
uses: HyukjinKwon/action-download-artifact@master | ||
with: | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
workflow: ${{ github.event.workflow_run.workflow_id }} | ||
commit: ${{ github.event.workflow_run.head_commit.id }} | ||
- name: Publish test report | ||
# TODO(SPARK-32606): It was forked to have a custom fix | ||
# https://github.com/HyukjinKwon/action-download-artifact/commit/750b71af351aba467757d7be6924199bb08db4ed | ||
# in order to add the support to download all artifacts. It should be contributed back to the original | ||
# plugin and avoid using the fork. | ||
# Alternatively, we can use the official actions/download-artifact once they support to download artifacts | ||
# between different workloads, see also https://github.com/actions/download-artifact/issues/3 | ||
uses: HyukjinKwon/action-surefire-report@master | ||
with: | ||
check_name: Test report | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
report_paths: "**/target/test-reports/*.xml" | ||
commit: ${{ github.event.workflow_run.head_commit.id }} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was already fixed.