This is an automated email from the ASF dual-hosted git repository.

yhu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new f0f8f437d1a Publish test results for PreCommit and PostCommit Python 
workflows (#29089)
f0f8f437d1a is described below

commit f0f8f437d1ae6f0e69d9ae587e7ef8aa33e869b8
Author: magicgoody <[email protected]>
AuthorDate: Mon Oct 23 03:33:46 2023 +0600

    Publish test results for PreCommit and PostCommit Python workflows (#29089)
    
    * python test results publish
    
    * add postcommit python test publish step
---
 ...am_PerformanceTests_WordCountIT_PythonVersions.yml | 13 ++++++++++---
 .../workflows/beam_PostCommit_PortableJar_Flink.yml   | 13 ++++++++++---
 .../workflows/beam_PostCommit_PortableJar_Spark.yml   | 19 +++++++++++++------
 .github/workflows/beam_PostCommit_Python.yml          | 19 +++++++++++++------
 .github/workflows/beam_PostCommit_Python_Arm.yml      | 19 +++++++++++++------
 .../beam_PostCommit_Python_Examples_Dataflow.yml      | 19 +++++++++++++------
 .../beam_PostCommit_Python_Examples_Direct.yml        | 19 +++++++++++++------
 .../beam_PostCommit_Python_Examples_Flink.yml         | 19 +++++++++++++------
 .../beam_PostCommit_Python_Examples_Spark.yml         | 19 +++++++++++++------
 .../workflows/beam_PostCommit_Python_MongoDBIO_IT.yml | 19 +++++++++++++------
 ..._PostCommit_Python_ValidatesContainer_Dataflow.yml | 19 +++++++++++++------
 ...mit_Python_ValidatesContainer_Dataflow_With_RC.yml | 19 +++++++++++++------
 ...eam_PostCommit_Python_ValidatesRunner_Dataflow.yml | 19 +++++++++++++------
 .../beam_PostCommit_Python_ValidatesRunner_Flink.yml  | 19 +++++++++++++------
 .../beam_PostCommit_Python_ValidatesRunner_Samza.yml  | 19 +++++++++++++------
 .../beam_PostCommit_Python_ValidatesRunner_Spark.yml  | 19 +++++++++++++------
 .../beam_PostCommit_Python_Xlang_Gcp_Dataflow.yml     | 19 +++++++++++++------
 .../beam_PostCommit_Python_Xlang_Gcp_Direct.yml       | 19 +++++++++++++------
 .../beam_PostCommit_Python_Xlang_IO_Dataflow.yml      | 19 +++++++++++++------
 .github/workflows/beam_PostCommit_Sickbay_Python.yml  | 19 +++++++++++++------
 .../beam_PostCommit_TransformService_Direct.yml       | 19 +++++++++++++------
 ...eam_PostCommit_XVR_PythonUsingJavaSQL_Dataflow.yml | 19 +++++++++++++------
 .../beam_PostCommit_XVR_PythonUsingJava_Dataflow.yml  | 19 +++++++++++++------
 .github/workflows/beam_PreCommit_Python.yml           | 19 +++++++++++++------
 .github/workflows/beam_PreCommit_Python_Coverage.yml  | 19 +++++++++++++------
 .../workflows/beam_PreCommit_Python_Dataframes.yml    | 19 +++++++++++++------
 .github/workflows/beam_PreCommit_Python_Examples.yml  | 19 +++++++++++++------
 .../workflows/beam_PreCommit_Python_Integration.yml   | 19 +++++++++++++------
 .github/workflows/beam_PreCommit_Python_PVR_Flink.yml | 19 +++++++++++++------
 .github/workflows/beam_PreCommit_Python_Runners.yml   | 19 +++++++++++++------
 .../workflows/beam_PreCommit_Python_Transforms.yml    | 19 +++++++++++++------
 31 files changed, 397 insertions(+), 180 deletions(-)

diff --git 
a/.github/workflows/beam_PerformanceTests_WordCountIT_PythonVersions.yml 
b/.github/workflows/beam_PerformanceTests_WordCountIT_PythonVersions.yml
index 6df9ef42d60..7903bf033ad 100644
--- a/.github/workflows/beam_PerformanceTests_WordCountIT_PythonVersions.yml
+++ b/.github/workflows/beam_PerformanceTests_WordCountIT_PythonVersions.yml
@@ -103,9 +103,16 @@ jobs:
             --info \
             
-Ptest=apache_beam/examples/wordcount_it_test.py::WordCountIT::test_wordcount_it
 \
             "-Ptest-pipeline-options=${{ 
env.beam_PerformanceTests_WordCountIT_PythonVersions_test_arguments_1 }}"
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PostCommit_PortableJar_Flink.yml 
b/.github/workflows/beam_PostCommit_PortableJar_Flink.yml
index ef27d1601e2..0140c16a85c 100644
--- a/.github/workflows/beam_PostCommit_PortableJar_Flink.yml
+++ b/.github/workflows/beam_PostCommit_PortableJar_Flink.yml
@@ -79,9 +79,16 @@ jobs:
           gradle-command: 
:sdks:python:test-suites:portable:py38:testPipelineJarFlinkRunner
           arguments: |
             -PpythonVersion=3.8 \
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PostCommit_PortableJar_Spark.yml 
b/.github/workflows/beam_PostCommit_PortableJar_Spark.yml
index a84384bdb86..243effdf063 100644
--- a/.github/workflows/beam_PostCommit_PortableJar_Spark.yml
+++ b/.github/workflows/beam_PostCommit_PortableJar_Spark.yml
@@ -23,12 +23,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -79,9 +79,16 @@ jobs:
           gradle-command: 
:sdks:python:test-suites:portable:py38:testPipelineJarSparkRunner
           arguments: |
             -PpythonVersion=3.8 \
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PostCommit_Python.yml 
b/.github/workflows/beam_PostCommit_Python.yml
index ffd2979c3a9..e439b50d531 100644
--- a/.github/workflows/beam_PostCommit_Python.yml
+++ b/.github/workflows/beam_PostCommit_Python.yml
@@ -30,12 +30,12 @@ concurrency:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -94,9 +94,16 @@ jobs:
             -PpythonVersion=${{ matrix.python_version }} \
         env:
           CLOUDSDK_CONFIG: ${{ env.KUBELET_GCLOUD_CONFIG_PATH}}
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PostCommit_Python_Arm.yml 
b/.github/workflows/beam_PostCommit_Python_Arm.yml
index cf41ed19d25..065c917f868 100644
--- a/.github/workflows/beam_PostCommit_Python_Arm.yml
+++ b/.github/workflows/beam_PostCommit_Python_Arm.yml
@@ -32,12 +32,12 @@ concurrency:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -110,9 +110,16 @@ jobs:
           CLOUDSDK_CONFIG: ${{ env.KUBELET_GCLOUD_CONFIG_PATH}}
           MULTIARCH_TAG: ${{ steps.set_tag.outputs.TAG }}
           USER: github-actions
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PostCommit_Python_Examples_Dataflow.yml 
b/.github/workflows/beam_PostCommit_Python_Examples_Dataflow.yml
index 61fbb1f80e7..b659b2522b1 100644
--- a/.github/workflows/beam_PostCommit_Python_Examples_Dataflow.yml
+++ b/.github/workflows/beam_PostCommit_Python_Examples_Dataflow.yml
@@ -23,12 +23,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -79,9 +79,16 @@ jobs:
           arguments: |
             -PuseWheelDistribution \
             -PpythonVersion=3.11 \
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PostCommit_Python_Examples_Direct.yml 
b/.github/workflows/beam_PostCommit_Python_Examples_Direct.yml
index c8855b2b127..b7344be286e 100644
--- a/.github/workflows/beam_PostCommit_Python_Examples_Direct.yml
+++ b/.github/workflows/beam_PostCommit_Python_Examples_Direct.yml
@@ -23,12 +23,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -86,9 +86,16 @@ jobs:
           gradle-command: 
:sdks:python:test-suites:direct:py${{steps.set_py_ver_clean.outputs.py_ver_clean}}:examples
           arguments: |
             -PpythonVersion=${{ matrix.python_version }} \
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PostCommit_Python_Examples_Flink.yml 
b/.github/workflows/beam_PostCommit_Python_Examples_Flink.yml
index 2e4db619250..af349c0ef36 100644
--- a/.github/workflows/beam_PostCommit_Python_Examples_Flink.yml
+++ b/.github/workflows/beam_PostCommit_Python_Examples_Flink.yml
@@ -23,12 +23,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -86,9 +86,16 @@ jobs:
           gradle-command: 
:sdks:python:test-suites:portable:py${{steps.set_py_ver_clean.outputs.py_ver_clean}}:flinkExamples
           arguments: |
             -PpythonVersion=${{ matrix.python_version }} \
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PostCommit_Python_Examples_Spark.yml 
b/.github/workflows/beam_PostCommit_Python_Examples_Spark.yml
index 498bc4f747a..66a240eec23 100644
--- a/.github/workflows/beam_PostCommit_Python_Examples_Spark.yml
+++ b/.github/workflows/beam_PostCommit_Python_Examples_Spark.yml
@@ -23,12 +23,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -86,9 +86,16 @@ jobs:
           gradle-command: 
:sdks:python:test-suites:portable:py${{steps.set_py_ver_clean.outputs.py_ver_clean}}:sparkExamples
           arguments: |
             -PpythonVersion=${{ matrix.python_version }} \
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PostCommit_Python_MongoDBIO_IT.yml 
b/.github/workflows/beam_PostCommit_Python_MongoDBIO_IT.yml
index d8e9934609f..e406a58d01a 100644
--- a/.github/workflows/beam_PostCommit_Python_MongoDBIO_IT.yml
+++ b/.github/workflows/beam_PostCommit_Python_MongoDBIO_IT.yml
@@ -23,12 +23,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -78,9 +78,16 @@ jobs:
           gradle-command: :sdks:python:test-suites:direct:py311:mongodbioIT
           arguments: |
             -PpythonVersion=3.11 \
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git 
a/.github/workflows/beam_PostCommit_Python_ValidatesContainer_Dataflow.yml 
b/.github/workflows/beam_PostCommit_Python_ValidatesContainer_Dataflow.yml
index 51b22fa66a0..e572c5c9198 100644
--- a/.github/workflows/beam_PostCommit_Python_ValidatesContainer_Dataflow.yml
+++ b/.github/workflows/beam_PostCommit_Python_ValidatesContainer_Dataflow.yml
@@ -23,12 +23,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -90,9 +90,16 @@ jobs:
           gradle-command: 
:sdks:python:test-suites:dataflow:py${{steps.set_py_ver_clean.outputs.py_ver_clean}}:validatesContainer
           arguments: |
             -PpythonVersion=${{ matrix.python_version }} \
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git 
a/.github/workflows/beam_PostCommit_Python_ValidatesContainer_Dataflow_With_RC.yml
 
b/.github/workflows/beam_PostCommit_Python_ValidatesContainer_Dataflow_With_RC.yml
index 33fa6b53e23..cfc5db3ff8e 100644
--- 
a/.github/workflows/beam_PostCommit_Python_ValidatesContainer_Dataflow_With_RC.yml
+++ 
b/.github/workflows/beam_PostCommit_Python_ValidatesContainer_Dataflow_With_RC.yml
@@ -23,12 +23,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -91,9 +91,16 @@ jobs:
           arguments: |
             -PtestRCDependencies=true \
             -PpythonVersion=${{ matrix.python_version }} \
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git 
a/.github/workflows/beam_PostCommit_Python_ValidatesRunner_Dataflow.yml 
b/.github/workflows/beam_PostCommit_Python_ValidatesRunner_Dataflow.yml
index b01ea81f9ac..79b2269fa26 100644
--- a/.github/workflows/beam_PostCommit_Python_ValidatesRunner_Dataflow.yml
+++ b/.github/workflows/beam_PostCommit_Python_ValidatesRunner_Dataflow.yml
@@ -23,12 +23,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -94,9 +94,16 @@ jobs:
           arguments: |
             -PuseWheelDistribution \
             -PpythonVersion=${{ matrix.python_version }} \
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PostCommit_Python_ValidatesRunner_Flink.yml 
b/.github/workflows/beam_PostCommit_Python_ValidatesRunner_Flink.yml
index 79a7550755d..367a5da28fd 100644
--- a/.github/workflows/beam_PostCommit_Python_ValidatesRunner_Flink.yml
+++ b/.github/workflows/beam_PostCommit_Python_ValidatesRunner_Flink.yml
@@ -23,12 +23,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -88,9 +88,16 @@ jobs:
           gradle-command: 
:sdks:python:test-suites:portable:py${{steps.set_py_ver_clean.outputs.py_ver_clean}}:flinkValidatesRunner
           arguments: |
             -PpythonVersion=${{ matrix.python_version }} \
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PostCommit_Python_ValidatesRunner_Samza.yml 
b/.github/workflows/beam_PostCommit_Python_ValidatesRunner_Samza.yml
index 300cee6c352..9fff3935639 100644
--- a/.github/workflows/beam_PostCommit_Python_ValidatesRunner_Samza.yml
+++ b/.github/workflows/beam_PostCommit_Python_ValidatesRunner_Samza.yml
@@ -23,12 +23,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -86,9 +86,16 @@ jobs:
           gradle-command: 
:sdks:python:test-suites:portable:py${{steps.set_py_ver_clean.outputs.py_ver_clean}}:samzaValidatesRunner
           arguments: |
             -PpythonVersion=${{ matrix.python_version }} \
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PostCommit_Python_ValidatesRunner_Spark.yml 
b/.github/workflows/beam_PostCommit_Python_ValidatesRunner_Spark.yml
index c1f55590b8e..67ec4b5af84 100644
--- a/.github/workflows/beam_PostCommit_Python_ValidatesRunner_Spark.yml
+++ b/.github/workflows/beam_PostCommit_Python_ValidatesRunner_Spark.yml
@@ -23,12 +23,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -86,9 +86,16 @@ jobs:
           gradle-command: 
:sdks:python:test-suites:portable:py${{steps.set_py_ver_clean.outputs.py_ver_clean}}:sparkValidatesRunner
           arguments: |
             -PpythonVersion=${{ matrix.python_version }} \
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PostCommit_Python_Xlang_Gcp_Dataflow.yml 
b/.github/workflows/beam_PostCommit_Python_Xlang_Gcp_Dataflow.yml
index e4023479c32..291de49c3bb 100644
--- a/.github/workflows/beam_PostCommit_Python_Xlang_Gcp_Dataflow.yml
+++ b/.github/workflows/beam_PostCommit_Python_Xlang_Gcp_Dataflow.yml
@@ -23,12 +23,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -78,9 +78,16 @@ jobs:
         with:
           gradle-command: 
:sdks:python:test-suites:dataflow:gcpCrossLanguagePostCommit
           arguments: -PuseWheelDistribution
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PostCommit_Python_Xlang_Gcp_Direct.yml 
b/.github/workflows/beam_PostCommit_Python_Xlang_Gcp_Direct.yml
index ec734641b6b..cf061f47e67 100644
--- a/.github/workflows/beam_PostCommit_Python_Xlang_Gcp_Direct.yml
+++ b/.github/workflows/beam_PostCommit_Python_Xlang_Gcp_Direct.yml
@@ -23,12 +23,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -77,9 +77,16 @@ jobs:
         uses: ./.github/actions/gradle-command-self-hosted-action
         with:
           gradle-command: 
:sdks:python:test-suites:direct:gcpCrossLanguagePostCommit
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PostCommit_Python_Xlang_IO_Dataflow.yml 
b/.github/workflows/beam_PostCommit_Python_Xlang_IO_Dataflow.yml
index 9a4a3009876..069b9965517 100644
--- a/.github/workflows/beam_PostCommit_Python_Xlang_IO_Dataflow.yml
+++ b/.github/workflows/beam_PostCommit_Python_Xlang_IO_Dataflow.yml
@@ -23,12 +23,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -80,9 +80,16 @@ jobs:
           arguments: |
             -PuseWheelDistribution \
             
-PkafkaBootstrapServer=10.128.0.40:9094,10.128.0.28:9094,10.128.0.165:9094 \
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: archiveJunit
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PostCommit_Sickbay_Python.yml 
b/.github/workflows/beam_PostCommit_Sickbay_Python.yml
index 5e8b717d0ef..7516a6003a2 100644
--- a/.github/workflows/beam_PostCommit_Sickbay_Python.yml
+++ b/.github/workflows/beam_PostCommit_Sickbay_Python.yml
@@ -30,12 +30,12 @@ concurrency:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -89,9 +89,16 @@ jobs:
           gradle-command: 
:sdks:python:test-suites:dataflow:py${{steps.set_py_ver_clean.outputs.py_ver_clean}}:postCommitSickbay
           arguments: |
             -PpythonVersion=${{ matrix.python_version }} \
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PostCommit_TransformService_Direct.yml 
b/.github/workflows/beam_PostCommit_TransformService_Direct.yml
index 4c9bb3aa930..327b50f7840 100644
--- a/.github/workflows/beam_PostCommit_TransformService_Direct.yml
+++ b/.github/workflows/beam_PostCommit_TransformService_Direct.yml
@@ -23,12 +23,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -88,9 +88,16 @@ jobs:
             -Pjava11Home=$JAVA_HOME_11_X64 \
             -PuseWheelDistribution \
             -PpythonVersion=${{ matrix.python_version }} \
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git 
a/.github/workflows/beam_PostCommit_XVR_PythonUsingJavaSQL_Dataflow.yml 
b/.github/workflows/beam_PostCommit_XVR_PythonUsingJavaSQL_Dataflow.yml
index be4fcb9cec5..f000d1956f0 100644
--- a/.github/workflows/beam_PostCommit_XVR_PythonUsingJavaSQL_Dataflow.yml
+++ b/.github/workflows/beam_PostCommit_XVR_PythonUsingJavaSQL_Dataflow.yml
@@ -23,12 +23,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -79,9 +79,16 @@ jobs:
           gradle-command: 
:runners:google-cloud-dataflow-java:validatesCrossLanguageRunnerPythonUsingSql
           arguments: |
             -PpythonVersion=3.11 \
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PostCommit_XVR_PythonUsingJava_Dataflow.yml 
b/.github/workflows/beam_PostCommit_XVR_PythonUsingJava_Dataflow.yml
index 0318f732d97..fdc3798999d 100644
--- a/.github/workflows/beam_PostCommit_XVR_PythonUsingJava_Dataflow.yml
+++ b/.github/workflows/beam_PostCommit_XVR_PythonUsingJava_Dataflow.yml
@@ -23,12 +23,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -82,9 +82,16 @@ jobs:
           gradle-command: 
:runners:google-cloud-dataflow-java:validatesCrossLanguageRunnerPythonUsingJava
           arguments: |
             -PpythonVersion=${{ matrix.python_version }} \
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PreCommit_Python.yml 
b/.github/workflows/beam_PreCommit_Python.yml
index d507a8e3f07..53cc2af4a07 100644
--- a/.github/workflows/beam_PreCommit_Python.yml
+++ b/.github/workflows/beam_PreCommit_Python.yml
@@ -31,12 +31,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -98,9 +98,16 @@ jobs:
             -Pposargs="--ignore=apache_beam/dataframe/ 
--ignore=apache_beam/examples/ --ignore=apache_beam/runners/ 
--ignore=apache_beam/transforms/" \
             -PpythonVersion=${{ matrix.python_version }} \
             -PuseWheelDistribution
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PreCommit_Python_Coverage.yml 
b/.github/workflows/beam_PreCommit_Python_Coverage.yml
index 2127f08ea59..e04f1006c2a 100644
--- a/.github/workflows/beam_PreCommit_Python_Coverage.yml
+++ b/.github/workflows/beam_PreCommit_Python_Coverage.yml
@@ -31,12 +31,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -88,9 +88,16 @@ jobs:
           gradle-command: :sdks:python:test-suites:tox:py38:preCommitPyCoverage
           arguments: |
             -PuseWheelDistribution
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PreCommit_Python_Dataframes.yml 
b/.github/workflows/beam_PreCommit_Python_Dataframes.yml
index 9211e2527c6..8024f8d5390 100644
--- a/.github/workflows/beam_PreCommit_Python_Dataframes.yml
+++ b/.github/workflows/beam_PreCommit_Python_Dataframes.yml
@@ -31,12 +31,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -98,9 +98,16 @@ jobs:
             -Pposargs=apache_beam/dataframe/ \
             -PpythonVersion=${{ matrix.python_version }} \
             -PuseWheelDistribution
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PreCommit_Python_Examples.yml 
b/.github/workflows/beam_PreCommit_Python_Examples.yml
index 164734f0c8e..19839118dbf 100644
--- a/.github/workflows/beam_PreCommit_Python_Examples.yml
+++ b/.github/workflows/beam_PreCommit_Python_Examples.yml
@@ -31,12 +31,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -98,9 +98,16 @@ jobs:
             -Pposargs=apache_beam/examples/ \
             -PpythonVersion=${{ matrix.python_version }} \
             -PuseWheelDistribution
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PreCommit_Python_Integration.yml 
b/.github/workflows/beam_PreCommit_Python_Integration.yml
index f9c32a12bf5..c8f22339565 100644
--- a/.github/workflows/beam_PreCommit_Python_Integration.yml
+++ b/.github/workflows/beam_PreCommit_Python_Integration.yml
@@ -31,12 +31,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -104,9 +104,16 @@ jobs:
           arguments: |
             -PuseWheelDistribution \
             -PpythonVersion=${{ matrix.python_version }} \
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PreCommit_Python_PVR_Flink.yml 
b/.github/workflows/beam_PreCommit_Python_PVR_Flink.yml
index 06f18651f11..f5457122e69 100644
--- a/.github/workflows/beam_PreCommit_Python_PVR_Flink.yml
+++ b/.github/workflows/beam_PreCommit_Python_PVR_Flink.yml
@@ -54,12 +54,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -112,9 +112,16 @@ jobs:
           gradle-command: 
:sdks:python:test-suites:portable:py311:flinkValidatesRunner
           arguments: |
             -PpythonVersion=3.11 \
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
-        if: always()
+        if: failure()
         with:
-          name: python-code-coverage-report
+          name: Python Test Results
           path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
+        if: always()
+        with:
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PreCommit_Python_Runners.yml 
b/.github/workflows/beam_PreCommit_Python_Runners.yml
index d1702905f5d..d622f9e6bbb 100644
--- a/.github/workflows/beam_PreCommit_Python_Runners.yml
+++ b/.github/workflows/beam_PreCommit_Python_Runners.yml
@@ -31,12 +31,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -98,9 +98,16 @@ jobs:
             -Pposargs=apache_beam/runners/ \
             -PpythonVersion=${{ matrix.python_version }} \
             -PuseWheelDistribution
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file
diff --git a/.github/workflows/beam_PreCommit_Python_Transforms.yml 
b/.github/workflows/beam_PreCommit_Python_Transforms.yml
index 7422d7dc0f4..d034296038e 100644
--- a/.github/workflows/beam_PreCommit_Python_Transforms.yml
+++ b/.github/workflows/beam_PreCommit_Python_Transforms.yml
@@ -31,12 +31,12 @@ on:
 #Setting explicit permissions for the action to avoid the default permissions 
which are `write-all` in case of pull_request_target event
 permissions:
   actions: write
-  pull-requests: read
-  checks: read
+  pull-requests: write
+  checks: write
   contents: read
   deployments: read
   id-token: none
-  issues: read
+  issues: write
   discussions: read
   packages: read
   pages: read
@@ -98,9 +98,16 @@ jobs:
             -Pposargs=apache_beam/transforms/ \
             -PpythonVersion=${{ matrix.python_version }} \
             -PuseWheelDistribution
-      - name: Archive code coverage results
+      - name: Archive Python Test Results
         uses: actions/upload-artifact@v3
+        if: failure()
+        with:
+          name: Python Test Results
+          path: '**/pytest*.xml'
+      - name: Publish Python Test Results
+        uses: EnricoMi/publish-unit-test-result-action@v2
         if: always()
         with:
-          name: python-code-coverage-report
-          path: "**/pytest*.xml"
\ No newline at end of file
+          commit: '${{ env.prsha || env.GITHUB_SHA }}'
+          comment_mode: ${{ github.event_name == 'issue_comment'  && 'always' 
|| 'off' }}
+          files: '**/pytest*.xml'
\ No newline at end of file

Reply via email to