From f6d653c2d83a1a80823aa633408fb9066be39568 Mon Sep 17 00:00:00 2001 From: George McCabe <23407799+georgemccabe@users.noreply.github.com> Date: Thu, 25 Apr 2024 09:23:02 -0600 Subject: [PATCH 1/7] run code coverage before SonarQube scan --- .github/workflows/sonarqube.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index b20417902..7c3b740f6 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -54,6 +54,25 @@ jobs: # Disable shallow clones for better analysis fetch-depth: 0 + - uses: actions/setup-python@v5 + with: + python-version: '3.10' + cache: 'pip' + + - name: Install Python Test Dependencies + run: | + python3 -m pip install --upgrade pip + python3 -m pip install -r internal/tests/pytests/requirements.txt + + - name: Run Pytests + run: coverage run -m pytest internal/tests/pytests + env: + METPLUS_TEST_OUTPUT_BASE: ${{ runner.workspace }}/pytest_output + + - name: Generate coverage report + run: coverage report -m + if: always() + - name: Get branch name id: get_branch_name run: echo branch_name=${GITHUB_REF#refs/heads/} >> $GITHUB_OUTPUT From 93c8f5a21938bbcb9d7c1c112885f1caef5636e8 Mon Sep 17 00:00:00 2001 From: George McCabe <23407799+georgemccabe@users.noreply.github.com> Date: Thu, 25 Apr 2024 09:37:56 -0600 Subject: [PATCH 2/7] generate xml report and configure SQ to read coverage.xml --- .github/workflows/sonarqube.yml | 6 +++++- internal/scripts/sonarqube/sonar-project.properties | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index 7c3b740f6..694697b94 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -69,10 +69,14 @@ jobs: env: METPLUS_TEST_OUTPUT_BASE: ${{ runner.workspace }}/pytest_output - - name: Generate coverage report + - name: Output coverage report run: coverage report -m if: always() + - name: Generate XML coverage report + run: coverage xml + if: always() + - name: Get branch name id: get_branch_name run: echo branch_name=${GITHUB_REF#refs/heads/} >> $GITHUB_OUTPUT diff --git a/internal/scripts/sonarqube/sonar-project.properties b/internal/scripts/sonarqube/sonar-project.properties index 02f74d786..ab295681c 100644 --- a/internal/scripts/sonarqube/sonar-project.properties +++ b/internal/scripts/sonarqube/sonar-project.properties @@ -5,6 +5,7 @@ sonar.projectVersion=SONAR_PROJECT_VERSION sonar.branch.name=SONAR_BRANCH_NAME sonar.sources=docs,internal,manage_externals,metplus,parm,produtil,ush sonar.coverage.exclusions=internal/tests/** +sonar.python.coverage.reportPaths=coverage.xml sonar.sourceEncoding=UTF-8 # SonarQube server From c7e46de2ba50ec8f85c4481d442095545f87bf7a Mon Sep 17 00:00:00 2001 From: George McCabe <23407799+georgemccabe@users.noreply.github.com> Date: Thu, 25 Apr 2024 09:50:19 -0600 Subject: [PATCH 3/7] exclude more files from code coverage report --- internal/scripts/sonarqube/sonar-project.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/scripts/sonarqube/sonar-project.properties b/internal/scripts/sonarqube/sonar-project.properties index ab295681c..5e9806f67 100644 --- a/internal/scripts/sonarqube/sonar-project.properties +++ b/internal/scripts/sonarqube/sonar-project.properties @@ -4,7 +4,7 @@ sonar.projectName=METplus sonar.projectVersion=SONAR_PROJECT_VERSION sonar.branch.name=SONAR_BRANCH_NAME sonar.sources=docs,internal,manage_externals,metplus,parm,produtil,ush -sonar.coverage.exclusions=internal/tests/** +sonar.coverage.exclusions=internal/tests/**,parm/**,internal/scripts/** sonar.python.coverage.reportPaths=coverage.xml sonar.sourceEncoding=UTF-8 From 64ef6a71f2f208aadd941e4d024af7ae397f8f8d Mon Sep 17 00:00:00 2001 From: George McCabe <23407799+georgemccabe@users.noreply.github.com> Date: Thu, 25 Apr 2024 10:13:03 -0600 Subject: [PATCH 4/7] exclude more files that should not be included in the code coverage report --- internal/scripts/sonarqube/sonar-project.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/scripts/sonarqube/sonar-project.properties b/internal/scripts/sonarqube/sonar-project.properties index 5e9806f67..18aa539c0 100644 --- a/internal/scripts/sonarqube/sonar-project.properties +++ b/internal/scripts/sonarqube/sonar-project.properties @@ -4,7 +4,7 @@ sonar.projectName=METplus sonar.projectVersion=SONAR_PROJECT_VERSION sonar.branch.name=SONAR_BRANCH_NAME sonar.sources=docs,internal,manage_externals,metplus,parm,produtil,ush -sonar.coverage.exclusions=internal/tests/**,parm/**,internal/scripts/** +sonar.coverage.exclusions=internal/tests/use_cases/**,parm/**,internal/scripts/**,manage_externals/**,docs/**,produtil/** sonar.python.coverage.reportPaths=coverage.xml sonar.sourceEncoding=UTF-8 From 5b051282349b9a6c6cdf6872eaad6d712cb35083 Mon Sep 17 00:00:00 2001 From: George McCabe <23407799+georgemccabe@users.noreply.github.com> Date: Thu, 25 Apr 2024 10:32:27 -0600 Subject: [PATCH 5/7] more changes to code coverage exclude list --- internal/scripts/sonarqube/sonar-project.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/scripts/sonarqube/sonar-project.properties b/internal/scripts/sonarqube/sonar-project.properties index 18aa539c0..fc65aa26f 100644 --- a/internal/scripts/sonarqube/sonar-project.properties +++ b/internal/scripts/sonarqube/sonar-project.properties @@ -1,10 +1,10 @@ # Project and source code settings -sonar.projectKey=METplus +0;95;0csonar.projectKey=METplus sonar.projectName=METplus sonar.projectVersion=SONAR_PROJECT_VERSION sonar.branch.name=SONAR_BRANCH_NAME sonar.sources=docs,internal,manage_externals,metplus,parm,produtil,ush -sonar.coverage.exclusions=internal/tests/use_cases/**,parm/**,internal/scripts/**,manage_externals/**,docs/**,produtil/** +sonar.coverage.exclusions=internal/tests/**,parm/**,internal/scripts/**,manage_externals/**,docs/**,produtil/**,ush/** sonar.python.coverage.reportPaths=coverage.xml sonar.sourceEncoding=UTF-8 From 19dcf0dda61e5b27a8c25a2bff04e07e8782c5c5 Mon Sep 17 00:00:00 2001 From: George McCabe <23407799+georgemccabe@users.noreply.github.com> Date: Thu, 25 Apr 2024 10:35:53 -0600 Subject: [PATCH 6/7] removed bad characters accidentally added --- internal/scripts/sonarqube/sonar-project.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/scripts/sonarqube/sonar-project.properties b/internal/scripts/sonarqube/sonar-project.properties index fc65aa26f..17afca8e7 100644 --- a/internal/scripts/sonarqube/sonar-project.properties +++ b/internal/scripts/sonarqube/sonar-project.properties @@ -1,5 +1,5 @@ # Project and source code settings -0;95;0csonar.projectKey=METplus +sonar.projectKey=METplus sonar.projectName=METplus sonar.projectVersion=SONAR_PROJECT_VERSION sonar.branch.name=SONAR_BRANCH_NAME From 5706ce06b27a548ee546a6b0cb3c01751efcfefc Mon Sep 17 00:00:00 2001 From: George McCabe <23407799+georgemccabe@users.noreply.github.com> Date: Thu, 25 Apr 2024 10:46:25 -0600 Subject: [PATCH 7/7] exclude cyclone plotter wrapper because it is excluded from code coverage report --- internal/scripts/sonarqube/sonar-project.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/scripts/sonarqube/sonar-project.properties b/internal/scripts/sonarqube/sonar-project.properties index 17afca8e7..1504a3f16 100644 --- a/internal/scripts/sonarqube/sonar-project.properties +++ b/internal/scripts/sonarqube/sonar-project.properties @@ -4,7 +4,7 @@ sonar.projectName=METplus sonar.projectVersion=SONAR_PROJECT_VERSION sonar.branch.name=SONAR_BRANCH_NAME sonar.sources=docs,internal,manage_externals,metplus,parm,produtil,ush -sonar.coverage.exclusions=internal/tests/**,parm/**,internal/scripts/**,manage_externals/**,docs/**,produtil/**,ush/** +sonar.coverage.exclusions=internal/tests/**,parm/**,internal/scripts/**,manage_externals/**,docs/**,produtil/**,ush/**,metplus/wrappers/cyclone_plotter_wrapper.py sonar.python.coverage.reportPaths=coverage.xml sonar.sourceEncoding=UTF-8