From 996c1b6f94091265f03697401c1c9419fb04635b Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Mon, 2 Oct 2023 18:56:45 +0200 Subject: [PATCH] Added PublishCoverageResults action. --- .github/workflows/PublishCoverageResults.yml | 63 ++++++++++++++++++++ .github/workflows/_Checking_Pipeline.yml | 30 +++++----- 2 files changed, 78 insertions(+), 15 deletions(-) create mode 100644 .github/workflows/PublishCoverageResults.yml diff --git a/.github/workflows/PublishCoverageResults.yml b/.github/workflows/PublishCoverageResults.yml new file mode 100644 index 0000000..0550ab5 --- /dev/null +++ b/.github/workflows/PublishCoverageResults.yml @@ -0,0 +1,63 @@ +# ==================================================================================================================== # +# Authors: # +# Patrick Lehmann # +# # +# ==================================================================================================================== # +# Copyright 2020-2023 The pyTooling Authors # +# # +# Licensed 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. # +# # +# SPDX-License-Identifier: Apache-2.0 # +# ==================================================================================================================== # +name: Publish Unit Test Results + +on: + workflow_call: + inputs: + report_files: + description: 'Pattern of report files to upload. Can be a comma separated list.' + required: false + default: 'artifacts/**/*.xml' + type: string + +jobs: + PublishTestResults: + name: 📊 Publish Test Results + runs-on: ubuntu-latest + if: always() + + steps: + - name: ⏬ Checkout repository + uses: actions/checkout@v4 + + - name: Download Artifacts + uses: actions/download-artifact@v3 + with: + path: artifacts + + - name: 📊 Publish code coverage at CodeCov + if: inputs.CodeCov == true + continue-on-error: true + uses: codecov/codecov-action@v3 + with: + files: ${{ steps.getVariables.outputs.coverage_report_xml }} + flags: unittests + env_vars: PYTHON + + - name: 📉 Publish code coverage at Codacy + if: inputs.Codacy == true + continue-on-error: true + uses: codacy/codacy-coverage-reporter-action@v1 + with: + project-token: ${{ secrets.codacy_token }} + coverage-reports: ${{ steps.getVariables.outputs.coverage_report_xml }} diff --git a/.github/workflows/_Checking_Pipeline.yml b/.github/workflows/_Checking_Pipeline.yml index e07878c..6efa4c3 100644 --- a/.github/workflows/_Checking_Pipeline.yml +++ b/.github/workflows/_Checking_Pipeline.yml @@ -6,7 +6,7 @@ on: jobs: UnitTestingParams: - uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev + uses: pyTooling/Actions/.github/workflows/Parameters.yml@cov with: name: pyTooling python_version_list: "3.7 3.8 pypy-3.8 3.9 pypy-3.9 3.10 3.11" @@ -14,14 +14,14 @@ jobs: # disable_list: "windows:3.11" PlatformTestingParams: - uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev + uses: pyTooling/Actions/.github/workflows/Parameters.yml@cov with: name: Platform python_version_list: "" system_list: "ubuntu windows macos mingw32 mingw64 clang64 ucrt64" UnitTesting: - uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@dev + uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@cov needs: - UnitTestingParams with: @@ -29,7 +29,7 @@ jobs: artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }} PlatformTesting: - uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@dev + uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@cov needs: - PlatformTestingParams with: @@ -39,7 +39,7 @@ jobs: artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).unittesting_xml }} Coverage: - uses: pyTooling/Actions/.github/workflows/CoverageCollection.yml@dev + uses: pyTooling/Actions/.github/workflows/CoverageCollection.yml@cov needs: - UnitTestingParams with: @@ -49,7 +49,7 @@ jobs: codacy_token: ${{ secrets.CODACY_PROJECT_TOKEN }} PublishCoverageResults: - uses: pyTooling/Actions/.github/workflows/PublishCoverageResults.yml@dev + uses: pyTooling/Actions/.github/workflows/PublishCoverageResults.yml@cov needs: - Coverage - PlatformTesting2 @@ -60,7 +60,7 @@ jobs: codacy_token: ${{ secrets.CODACY_PROJECT_TOKEN }} StaticTypeCheck: - uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@dev + uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@cov needs: - UnitTestingParams with: @@ -72,14 +72,14 @@ jobs: html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }} PublishTestResults: - uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@dev + uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@cov needs: - UnitTesting - PerformanceTesting - Benchmarking Package: - uses: pyTooling/Actions/.github/workflows/Package.yml@dev + uses: pyTooling/Actions/.github/workflows/Package.yml@cov needs: - UnitTestingParams - Coverage @@ -89,7 +89,7 @@ jobs: artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }} Release: - uses: pyTooling/Actions/.github/workflows/Release.yml@dev + uses: pyTooling/Actions/.github/workflows/Release.yml@cov if: startsWith(github.ref, 'refs/tags') needs: - UnitTesting @@ -98,7 +98,7 @@ jobs: - Package PublishOnPyPI: - uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@dev + uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@cov if: startsWith(github.ref, 'refs/tags') needs: - UnitTestingParams @@ -112,14 +112,14 @@ jobs: PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} # VerifyDocs: -# uses: pyTooling/Actions/.github/workflows/VerifyDocs.yml@dev +# uses: pyTooling/Actions/.github/workflows/VerifyDocs.yml@cov # needs: # - UnitTestingParams # with: # python_version: ${{ needs.UnitTestingParams.outputs.python_version }} # BuildTheDocs: -# uses: pyTooling/Actions/.github/workflows/BuildTheDocs.yml@dev +# uses: pyTooling/Actions/.github/workflows/BuildTheDocs.yml@cov # needs: # - UnitTestingParams ## - VerifyDocs @@ -127,7 +127,7 @@ jobs: # artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }} PublishToGitHubPages: - uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@dev + uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@cov needs: - UnitTestingParams # - BuildTheDocs @@ -139,7 +139,7 @@ jobs: typing: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }} ArtifactCleanUp: - uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@dev + uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@cov needs: - UnitTestingParams - UnitTesting